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.