Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Problema con SQL

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Problema con SQL Responder citando

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
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

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
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Enviar email
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.