| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Ciklon Cdt

Registrado: 27 Nov 2002Mensajes: 22Ubicación: Argentina
|
Publicado: Dom 27 Abr, 2003 10:36 pm Asunto: Problema con SQL |
|
|
Quiero inserar datos en una tabla usando un TQuery, lo hago de la siguiente manera:
Query1->Close();
Query1->SQL->Clear();
Query1->SQL->Add("insert into tabla");
Query1->SQL->Add("values(valor1,valor2)");
Query1->ExecSQL();
El problema es que al ejecutar la consulta obtengo un error: Invalid Token Insert, no entiendo porque si supestamente la sentencia es correcta.
Saludos a todos y gracias de antemano |
|
| Volver arriba |
|
 |
cancun Ens

Registrado: 22 Mar 2003Mensajes: 32Ubicación: Cancun, Q.Roo, México
|
Publicado: Lun 28 Abr, 2003 4:43 pm Asunto: |
|
|
Hola
Al parecer, la sintaxis es correcta, ¿ Pero que es valor1 y valor2 ?
Si son variables deberias concatenarlas segun su tipo.
Creo que por ahí está el problema.
Espero haberle atinado. _________________ Saludos
Roger Ruiz |
|
| Volver arriba |
|
 |
TOÑO Master

Registrado: 26 Ago 2002Mensajes: 223Ubicación: Madrid - España -
|
Publicado: Lun 28 Abr, 2003 6:42 pm Asunto: |
|
|
HOLA:
Query1->Close();
Query1->SQL->Clear();
Query1->SQL->Add("insert into tabla (campo1,campo2) )";
Query1->SQL->Add("values(valor1,valor2)");
Query1->ExecSQL();
By |
|
| Volver arriba |
|
 |
cancun Ens

Registrado: 22 Mar 2003Mensajes: 32Ubicación: Cancun, Q.Roo, México
|
Publicado: Lun 28 Abr, 2003 7:20 pm Asunto: |
|
|
Hola Toño
El problema no creo que sea por la falta de la lista de campos, ya que segun la documentación del SQL, esta es opcional. _________________ Saludos
Roger Ruiz |
|
| Volver arriba |
|
 |
gatos Invitado
|
Publicado: Mie 30 Abr, 2003 4:10 am Asunto: |
|
|
creo que el problema es que si campo1,campo2 son valores que tu vas a ingresar pasandolos por ejemplo como una variable el no lo acepta... lo que debes colocar son parametros. y luego le pasas los valores de las variables campo1,campo2.
como se hace eso... primero para que sean parametros debes colocar :(dos puntos) delente de los nombres por ejemplo :campo1
y para colocarle el valor debes acceder a la funcion parambyname del query algo asi... no estoy seguro por que no tengo builder aqui
Query1->parambyname("campo1")->AsString = lavariable;
el AsString si es un string claro esta si es entero deberas colocar AsInteger...... |
|
| Volver arriba |
|
 |
Touchsoftwares Master


Registrado: 16 Dic 2002Mensajes: 869Ubicación: MEXICO Playa del Carmen
|
Publicado: Mie 30 Abr, 2003 5:07 pm Asunto: |
|
|
Query1->SQL->Add("insert into tabla (campo1,campo2) ) "; // OJO <-- espacio al final _________________ Ing. Gabriel Góngora Navarrete
TouchSoftwares Inc
http://www.touchsoftwares.com |
|
| Volver arriba |
|
 |
Touchsoftwares Master


Registrado: 16 Dic 2002Mensajes: 869Ubicación: MEXICO Playa del Carmen
|
Publicado: Mie 30 Abr, 2003 5:07 pm Asunto: |
|
|
Query1->SQL->Add("insert into tabla (campo1,campo2) ") ; // OJO <-- espacio al final _________________ Ing. Gabriel Góngora Navarrete
TouchSoftwares Inc
http://www.touchsoftwares.com |
|
| Volver arriba |
|
 |
reiniertl Cdt

Registrado: 04 May 2003Mensajes: 4Ubicación: Cuba
|
Publicado: Dom 04 May, 2003 6:44 am Asunto: |
|
|
Quiero inserar datos en una tabla usando un TQuery, lo hago de la siguiente manera:
Query1->Close();
Query1->SQL->Clear();
Query1->SQL->Add("insert into tabla");
Query1->SQL->Add("values(valor1,valor2)");
Query1->ExecSQL();
Para comenzar que pasa con campo1 y campo2, en realidad no es necesario si valor1 y valor2 corresponden en orden consecutivo con la declaración de campos de la tabla, pero nunca está de más ponerlos.
Por otra parte si te fijas valor1 y valor2 están dentro de una cadena de caracteres así que el texto de consulta y por consiguiente lo que envíes al servidor será:
insert into tabla values (valor1, valor2) y seguro que lo que quieres es algo así:
supongamos que valor1 = "Cuba" y valor2 = "La Habana"
entonces tu consulta debiera dar como resultado:
insert into tabla (campo1, campo2) values('Cuba', 'La Habana')
Para eso utiliza algo así:
Query1->SQL->Text = Format("insert into tabla (campo1, campo2) values (%s, %s)", ARRAYOFCONST((QuotedStr(valor1), QuotedStr(valor2))));
La Función Format() te drá como resultado el que mostré anteriormente y QuotedStr() le pondrá a las cadenas comillas para evitar problemas con los espacios. Te recomiendo que consultes en la ayuda ambas funciones. Espro te sirva de ayuda. |
|
| Volver arriba |
|
 |
|