Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Problema de seleccion en BD (https://www.clubdelphi.com/foros/showthread.php?t=79878)

martini002 18-08-2012 00:56:13

Problema de seleccion en BD
 
Saludos amigos, donde quiera que se encuentren.

En esta ocasion tengo un inconveniente bastante desconcertante,
porque segun he visto en algunos tutoriales, y pues usando el sentido comun
he intentado hacer esto(Me falla el sentido comun ahora :S):

Esto es un ejercicio para conocer como funciona este proceso,
pues lo he querido aprender, por lo util que es,
la cuestion es que tengo una BD con varios campos,
y quiero ingresar un codigo, y que este busque el codigo
y me devuelva el nombre del articulo, entonces he intentado hacerlo de esta manera:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  Codigo:String;
begin
  Codigo:=Form1.Edit1.Text;
  if FileExists (ZConnection1.Database) then
    begin
      ZQuery1.Close;
      ZQuery1.SQL.Text:= 'SELECT NombreArticulo FROM InventarioArticulos WHERE CodigoArticulo = '+Codigo;
      ZQuery1.Open;
    end
  Else
  ShowMessage('BD No encontrada');
end;

El ZQuery esta conectado con el ZConnection, y con el DataSource,
ahora en la parte grafica Tenemos, un Edit, para leer el codigo,
y un DBEdit para mostrar el resultado, ese DBEdit tiene en su DataField, "NombreArticulo"
pero la cuestion es que cuando activo la aplicacion,
ya me tiene el nombre del producto escrito de una vez,
ahora cuando ingreso el codigo en este caso 101,
y le doy click, me arroja error,

Código:

SQL Error or missing database.
como siempre ya no se que pueda hacer, pues son mis primeros pasos
muchas gracias por su tiempo y ayuda :)

Casimiro Noteví 18-08-2012 02:18:33

¿Y qué tienes puesto en ZConnection1.Database ?


martini002 18-08-2012 02:19:24

Cita:

Empezado por Casimiro Notevi (Mensaje 439891)
¿Y qué tienes puesto en ZConnection1.Database ?


Alli tengo la ruta de la base de datos, y esta conectada :/

Casimiro Noteví 18-08-2012 02:24:16

Bueno, en principio, si el código en la BD es un campo de texto entonces está mal esto (y si es numérico también está mal):
Código Delphi [-]
ZQuery1.SQL.Text:= 'SELECT NombreArticulo FROM InventarioArticulos WHERE CodigoArticulo = '+Codigo;

Si es de texto:
Código Delphi [-]
zquery1.sql.text := 'select nombrearticulo from inventarioarticulos where codigoarticulo= ' + quotedstring(codigo);
Y si es numérico:
Código Delphi [-]
zquery1.sql.text := 'select nombrearticulo from inventarioarticulos where codigoarticulo= ' + inttotring(codigo);

Edito: veo que tienes una variable 'codigo' de texto:
Código Delphi [-]
zquery1.sql.text := 'select nombrearticulo from inventarioarticulos where codigoarticulo= ' + codigo;

martini002 18-08-2012 02:28:01

Bueno,
la compatibilidad creo que esta bien, porque ese codigo variable,
lo leemos por medio de un Edit, y eso es String, y de una vez guarda eso en una variable string,
entonces para que lo cambiamos a String?

Código Delphi [-]
zquery1.sql.text := 'select nombrearticulo from inventarioarticulos where codigoarticulo= ' + inttotring(codigo);

Mira, El CodigoArticulo en la BD es un Integer, eso afecta?
Gracias Campeon :)

martini002 20-08-2012 17:26:43

Bueno ya pude resolverlo gracias a Dios,
1-. Recomiendo siempre intentar y ensayar sin saber los resultados (ensayo y error)
2-. Siempre haz tu backup antes de hacer lo anterior.

Decidi hacer este ejercicio adaptado a mi base de datos:

Pero me daba un error cuando buscaba en desde el memo,
por ejemplo escribia Select * from InventarioArticulos mostraba en el grid todo el contenido de la BD
pero cuando buscaba Select NombreArticulo from InventarioArticulos,
me daba un error, me decia que la siguiente columna no se encontraba, "CodigoArticulo"
No se si a alguien le pase lo mismo, pero se resuelve de la siguiente manera,
en el objeto ZQuery1 deben dejar en blanco todos los Fields, no deben importar eso,
quiza fue mi error importarlos, pero ya me di cuenta que eso funciona para otra cosa, usando los DBEdits

Algo que me ayudo mucho en este camino fueron los siguientes textos y una herramienta muy util que compartire con ustedes.

El lenguaje SQL de Carme Martín Escofet
Seccion 2.

La cara oculta de Delphi 6 de Ian Marteens

SQLiteExpert (edición personal)
Para Administrar la BD y hacer pruebas, muy util,
en la pagina aparecen algunos tutoriales

Saludos


La franja horaria es GMT +2. Ahora son las 05:18:34.

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