Delphi - Tquery haciendo INSERT, solo inserta numericos....

 
Vista:

Tquery haciendo INSERT, solo inserta numericos....

Publicado por Marcelo (6 intervenciones) el 01/11/2002 13:57:41
Hola,

Estoy haciendo un insert para una tabla de access que tiene un campo ClienteID (tipo numerico) y un campo Nombre (tipo texto).

Solo me permite insertar si en el insert mando dos valores numericos (Ej. Insert…… values(1,2)

Si yo pongo Insert… values(1, Pepe) me da el siguiente error:

Pocos parámetros. Se esperaba 1. Process stopped.

El codigo es el siguiente:

qry2.SQL.Add('INSERT into Clientes (ClienteID, RazonSocial)values(1,' + edit1.text + ')');
qry2.ExecSql;

No se que puede estar pasando… habrá que especificarle al Tquery los tipos de datos que mando..???? porque la sentencia sql está bien….

bueno, muchas gracias por la atención.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Refacil!

Publicado por mamcx (23 intervenciones) el 01/11/2002 16:53:00
Estas olvidando las comillas. La unica manera de que el componente TQuery pueda dinamicamente convertir Pepe a 'Pepe' es si usas parametros.

Por lo tanto el insert es:

qry2.SQL.Add('INSERT into Clientes (ClienteID, RazonSocial)values(1,QutoStr(' + edit1.text + '))');
qry2.ExecSql;

Nota: QuoteStr agrega al principio y final de la cadena el caracter '. La otra manera es ''''+Cadena+'''', lo cual es mas dificil de leer.

Para que entiendas lo que ocurre, un comando Sql es texto simple. No lleva implicito ninguna informacion sobre el tipo de datos. Esa es la razon de que existan los componentes TTable, TQuery etc... que incorporan la estuctura(i.e. Fields). De lo contrario, hay que ajustar la cadena para el tipo de datos especifico.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar