Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Consulta de SQL con problemillas... (https://www.clubdelphi.com/foros/showthread.php?t=41312)

ilichhernandez 12-03-2007 20:24:37

Consulta de SQL con problemillas...
 
Estimados colegas; tengo el siguiente codigo y quisiera alguna opinion y/o correcion
Código Delphi [-]
query1.sql.Clear;
query1.SQL.add('select * from proveedores where rut = :parametro');
query1.ParamByName('parametro').AsInteger := Strtoint(Edit3.Text);
query1.ExecSQL;
edit2.Text := query1.ParamByName('nombre').AsString;
En el fondo lo que trato de hacer es que el rut que ingreso en un edit (el rut es el numero identificador unico de personas y empresas aca en chile, para los que no sepan de que hablo) me sirva para rescatar los datos de la bd, pero no me queda claro si esta es la manera adecuada o tal vez ocupando una table en vez de una query.

Bueno, gracias para todos los que puedan colaborar.

roman 12-03-2007 20:29:09

No tiene nada de malo este método, excepto que debes usar query1.Open en lugar de query1.ExecSQL.

// Saludos

Caral 12-03-2007 20:31:25

Hola
Para mi lo estas haciendo dos veces.
Código Delphi [-]
query1.sql.Clear;
query1.SQL.Text 'select * from proveedores where rut = '+ Strtoint(Edit3.Text);
query1.ExecSQL;
edit2.Text := query1.ParamByName('nombre').AsString;
Saludos

ilichhernandez 12-03-2007 20:35:28

Se me olvido acotar que este codigo me arroja el siguiente error :
Project Project1.exe raised exception class EDatabaseError with message 'Query1 : Parameter 'nombre' not found'

Cabe mencionar que el campo nombre si se encuentra en la tabla proveedores, por lo tanto no se s que se referira...... que creen ustedes

Caral 12-03-2007 20:40:01

Bueno me tocaria preguntar que base de datos usas?
Saludos

roman 12-03-2007 20:41:13

La última línea en tu código sobra, no sé cuál es la intención de ponerla, pero no tienes en tu sentencia SQL más que un parámetro cuyo nombre es "parametro", así que no entiendo cuál es la intención de esa línea.

// Saludos

ilichhernandez 12-03-2007 20:44:18

Código Delphi [-]
query1.sql.Clear;
query1.SQL.add('select * from proveedores where rut = :parametro');
query1.ParamByName('parametro').AsInteger := Strtoint(Edit3.Text);
query1.ExecSQL;
edit2.Text := query1.ParamByName('nombre').AsString;
La idea es que con las lineas query....... obtengo la informacion de un determinado rut, y luego con la ultima linea quiero pasar el dato del nombre de dicho rut a un campo edit en el formulario.Esto pues en la sentencia sql obtengo se supone todos los campos del registro , por lo tanto no deberia tener problemas en recuperar el campo nombre o cualquier otro de dicho registro .mmm parece que tal vez la ultima linea debiera ser algo asi
Código Delphi [-]
edit2.text := query1.fieldbyname('nombre').AsString;

roman 12-03-2007 20:51:14

Cita:

Empezado por ilichhernandez
mmm parece que tal vez la ultima linea debiera ser algo asi
Código Delphi [-]
edit2.text := query1.fieldbyname('nombre').AsString;

Pues ya te has contestado tú mismo :)

// Saludos

ilichhernandez 12-03-2007 20:58:41

que raro, me sigue dando el error que anteriormente mencione en el parametro....

ilichhernandez 12-03-2007 21:05:27

Considerando que el método que estoy tratando me da error, que método alternativo podria usar....????

ilichhernandez 12-03-2007 23:08:42

El error estaba en mi sentencia sql, pues el parametro debia ser antecedido por ":" y se me habia pasado. Bueno gracias a todos los que me echaron una mano.

Agradecido
Ilich Hernandez


La franja horaria es GMT +2. Ahora son las 12:08:43.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi