Page 1 of 1
¿Ejemplo FWH-Xharbour-MySql?
Posted: Mon Apr 09, 2012 9:49 pm
by FranciscoA
Hola amigos del foro.
Alguno de ustedes que use Mysql podría mostrar un pequeño ejemplo de como utilizar nombres de campos en variables?
Ya he peleado por 3 dias y no doy. Sería algo así:
cCampo:="CAMPO1"
oServer:Query("INSERT INTO mitable ('"+cCampo+"') VALUES ('"+cCampo+"' + '100.00' ;")
//Sintaxis error near 'CAMPO1'
Agradezco de antemano.
Saludos.
Re: ¿Ejemplo FWH-Xharbour-MySql?
Posted: Mon Apr 09, 2012 10:32 pm
by Raymundo Islas M.
Francisco,
Por lo que entiendo, quieres grabar el valor de un campo mas x valor, al momento de anexar el registro a la DB, y por lo que veo, el error lo manda porque quieres hacer operaciones con un texto y numeros.
Lo que intentas hacer se puede sin problemas con un update : update tabla set campo = campo + 100
Saludos
Re: ¿Ejemplo FWH-Xharbour-MySql?
Posted: Tue Apr 10, 2012 1:22 am
by FranciscoA
Ray, gracias por contestar.
Tienes razon sobre la parte de VALUES (), estaba "mareado" al momento de hacer el post. Debió haber sido así:
Code: Select all
cCampo:="CAMPO1"
oServer:Query("INSERT INTO mitable ('"+cCampo+"') VALUES ( '100.00') ;")
Hice esta prueba en el SQLyog:
SET @c = 'CAMPO1';
INSERT INTO mitable (@c) VALUES ('100.00') ;
Sin embargo siempre da el error en 'CAMPO1' . Es decir, reconoce el valor de la variable pero no acepta la operación. He leído en muchos foros y la respuesta es que no se puede, que se debe usar sentencias preparadas.
SIN EMBARGO TU POST ME HA DADO OTRA IDEA. Voy a insertar un registro con valores por defecto y luego lo voy a actualizar como indicas. Lo que estoy haciendo es un informe bastante complejo que requiere de una cantidad de columnas que puede variar, y no puedo identificarlas por su nombre porque se me haría muy largo el código.
Muchas gracias.
Saludos.
Re: ¿Ejemplo FWH-Xharbour-MySql?
Posted: Tue Apr 10, 2012 2:30 am
by Willi Quintana
A ver prueba asi:
Code: Select all
cCampo:="CAMPO1"
oServer:Query("INSERT INTO mitable (" + cCampo + ") VALUES ( '100.00') ;")
Salu2
Re: ¿Ejemplo FWH-Xharbour-MySql?
Posted: Tue Apr 10, 2012 1:06 pm
by FranciscoA
Willi, gracias por contestar.
Muestra error de sintaxis near ".
Ya lo he probado con comillas dobles, sencillas,signos @,$,%,& y ya no recuerdo que más inventos je-je-je.
En los foros de MySql que visité encontré varios post al respecto, y la contestacion fué que no se podía hacer así.
Sin embargo, "googleando" me encontré uno en PHP idéntico que dice que le funcionó. No entiendo.
Saludos.
Re: ¿Ejemplo FWH-Xharbour-MySql?
Posted: Tue Apr 10, 2012 1:51 pm
by FranciscoA
Willi, solucionado al fin, en el foro en Inglés, por Enrico Giordani.
La solución es como la tuya, pero sin comillas simples en VALUES (100.00).
Code: Select all
cCampo:="CAMPO1"
oServer:Query("INSERT INTO mitable (" + cCampo + ") VALUES ( [b]100.00[/b]) ;")
Agradezco sinceramente tu interés por ayudarme.
Saludos.
Re: ¿Ejemplo FWH-Xharbour-MySql?
Posted: Tue Apr 10, 2012 2:14 pm
by wmormar
Francisco Alegria,
Las comillas se usan en _ de tipo texto, hasta en las fechas los he puesto, pero en los valores numéricos no llevan comillas.
Solo una apreciación.
Re: ¿Ejemplo FWH-Xharbour-MySql?
Posted: Tue Apr 10, 2012 4:25 pm
by nnicanor
cCampo:="CAMPO1"
oServer:Query("INSERT INTO mitable (" + cCampo + ") VALUES ( 100 ) ;")
Re: ¿Ejemplo FWH-Xharbour-MySql?
Posted: Tue Apr 10, 2012 5:22 pm
by Miguel Salas
Hola Francisco.
Estoy empezando a migrar a mysql con ADO, tendras un ejemplo basico de iniciacion que quieras compartir?
desde ya gracias
atte Miguel
Re: ¿Ejemplo FWH-Xharbour-MySql?
Posted: Tue Apr 10, 2012 7:20 pm
by FranciscoA
Gracias, nnicanor.
William, gracias.
Lo que me impidió ver lo de las comillas fué la fuerza de la costumbre por sentencias como las siguientes, donde _ son numéricos, con la diferencia de que los valores a introducir provienen de variables.
WHERE numdoc = '"+cvaltochar(nDocu)+"' , SET numdoc = '"+cvaltochar(nNumdoc)+"' , etc,etc...
Miguel, no uso ADO. Utilizo FWH-XHARBOUR-MYSQL-TMYSQL.LIB
Si de cualquier manera te interesa el ejemplo, con gusto te lo envío. Indica tu email.
Saludos a todos.