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)
-   -   No jala todos los campos en query (https://www.clubdelphi.com/foros/showthread.php?t=48255)

Nomad 19-09-2007 19:22:26

No jala todos los campos en query
 
Hola


Hago esto...

SQL := 'Select Nombre,Departamento from Empleados where Codigo = :codigo and Activo = 1';
Query1.SQL.Text := SQL;
Query1.ParamByName('codigo').AsString := EdNCodigo.Text;
Query1.Active := True;
EdSNombre.text := Query1.Fields[0].AsString;

Pero curiosamente el campo nombre nunca lo jala, en el campo ...Fields[0] deberia venir el nombre del empleado, pero lo que me devuelve numero de departamento que deberia ser ...Fields[1].

La base de datos esta en SQL Server y la estoy accesando por medio de ODBC. El campo nombre es un nvarchar(50)...

Gracias

Caral 19-09-2007 20:15:58

Hola
Me parece curioso, no debería de pasar.
Primero te aconsejo que utilices la etiquetas delhi, se entendera mejor.
Código Delphi [-]
Query1.SQL.Text := 'Select Nombre, Departamento from Empleados where Codigo = :codigo and Activo = 1';
Query1.Active := True;
Query1.ParamByName('codigo').AsString := EdNCodigo.Text;
EdSNombre.text := Query1.Fields[0].AsString;
No entiendo la razón.
Coloca en la pantalla del query los campos, tal vez ayude.
Saludos

Nomad 19-09-2007 20:36:49

Cita:

Empezado por Caral (Mensaje 232307)
Coloca en la pantalla del query los campos, tal vez ayude.
Saludos

Gracias por tu aporte!

A que te refieres con que coloque en la pantalla del query los campos. Cual pantalla?

Caral 19-09-2007 21:03:23

Hola
El query tiene una propiedad que se llama SQL, si le das click, te saldra una ventana, en esta coloca la sentencia sql, pero sin los parametros.
Código SQL [-]
Select Nombre, Departamento from Empleados
La guardas.
Te posicionas en el componente query y le das doble click, te saldra la pantallita que te menciono, con el boton derecho del raton te saldran unas opciones, pon add y luego aceptar, con esto los campos los tendras en la pantallita.
Prueba otra vez el programa, a ver que pasa.
Saludos

luisgutierrezb 19-09-2007 21:13:42

a lo mejor diste de alta los campos persistentes y necesitas agregar el de nombre

Nomad 19-09-2007 21:18:55

Cita:

Empezado por Caral (Mensaje 232317)
Hola
El query tiene una propiedad que se llama SQL, si le das click, te saldra una ventana, en esta coloca la sentencia sql, pero sin los parametros.
Código SQL [-]Select Nombre, Departamento from Empleados

La guardas.
Te posicionas en el componente query y le das doble click, te saldra la pantallita que te menciono, con el boton derecho del raton te saldran unas opciones, pon add y luego aceptar, con esto los campos los tendras en la pantallita.
Prueba otra vez el programa, a ver que pasa.
Saludos

Solo aperece departamento en la ventanita, nombre NO...

Esta raro, verdad?

Caral 19-09-2007 21:30:42

Hola
Pues si no existe el registro, me parece que daria un error, no se que decirte.
Solo usare tus palabras.
Esta Raro.
Tal vez la opcion de luisgutierrezb, te sirva.
Saludos

Nomad 19-09-2007 21:33:50

Cita:

Empezado por luisgutierrezb (Mensaje 232324)
a lo mejor diste de alta los campos persistentes y necesitas agregar el de nombre

Y eso que significa? Dar de alta!

marcoszorrilla 19-09-2007 21:35:19

Por si acaso:
Código Delphi [-]
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Text := 'Select Nombre, Departamento from Empleados where Codigo = :codigo and Activo = 1';
Query1.Active := True;
Query1.ParamByName('codigo').AsString := EdNCodigo.Text;
EdSNombre.text := Query1.Fields[0].AsString;

Un Saludo.

Caral 19-09-2007 21:44:00

Hola marcoszorrilla
No creas que no lo pense, pero esta usando Text, no add
Y cuando se usa Text, se borra el texto anterior sin necesidad de clear, como es el caso de Add.
No, si yo mismo me sorprendo de lo que aprendo.:D
Saludos

egostar 19-09-2007 21:49:22

Y no existe la posibilidad de que en tu programa, estes grabando mal los campos?, quiero decir, que estes grabando departamento en nombre y nombre en departamento....:confused::confused::confused:

Digo, en este caso todo puede suceder...:D:D:D

Salud OS

Nomad 19-09-2007 21:52:29

Cita:

Empezado por egostar (Mensaje 232339)
Y no existe la posibilidad de que en tu programa, estes grabando mal los campos?, quiero decir, que estes grabando departamento en nombre y nombre en departamento....:confused::confused::confused:

Digo, en este caso todo puede suceder...:D:D:D

Salud OS

No, ya revise la base de datos y esta bien...

Caral 19-09-2007 21:54:32

Hola
No se, por que no conozco sql server, pero, no cabe la posibilidad de que diferencie mayúsculas y minúsculas?
Nombre o nombre
No se, ya no se me ocurre nada.
Saludos

Nomad 19-09-2007 21:58:31

Cita:

Empezado por Caral (Mensaje 232342)
Hola
No se, por que no conozco sql server, pero, no cabe la posibilidad de que diferencie mayúsculas y minúsculas?
Nombre o nombre
No se, ya no se me ocurre nada.
Saludos

Ya probe y tambien probe poniendo empleados.Nombre y nada... como si estuviera oculto y una cosa asi...

La verdad me tiene desconcertado...

egostar 19-09-2007 22:02:22

Porque no haces una pequeña prueba, no selecciones solo los campos que deseas, coloca * y mete un dbgrid, ahi verás la información tal y como te la regresa el query.

De esa forma podrás detectar el problema mas fácil

Salud OS.

Nomad 19-09-2007 22:03:39

Cita:

Empezado por egostar (Mensaje 232349)
Porque no haces una pequeña prueba, no selecciones solo los campos que deseas, coloca * y mete un dbgrid, ahi verás la información tal y como te la regresa el query.

De esa forma podrás detectar el problema mas fácil

Salud OS.

Ya lo hice y presenta todo menos el de nombre...

marcoszorrilla 19-09-2007 22:05:34

Caral:La verdad es que nunca utilizo Text para cargar el SQL, siempre lo hago con ADD, pero gracias por el apunte pues no me había fijado en el detalle.

Un Saludo.

egostar 19-09-2007 22:07:13

Cita:

Empezado por Nomad (Mensaje 232350)
Ya lo hice y presenta todo menos el de nombre...

:eek::eek::eek:, seguro el nombre es parte de la tabla :confused::confused::confused:

Porque no colocas aqui la imagen de tu base de datos y la imagen de lo que te muestra el grid....

Salud OS

marcoszorrilla 19-09-2007 22:07:36

Prueba a poner el nombre entre corchetes [nombre] o cambia el cambia el nombre del campo, ahora que recuerdo me parece que en las consultas de Acces pasaba lo mismo si se uitilizaba el campo de nombre nombre, valga la redundancia.

Un Saludo.

Nomad 19-09-2007 22:21:14

Cita:

Empezado por marcoszorrilla (Mensaje 232353)
Prueba a poner el nombre entre corchetes [nombre] o cambia el cambia el nombre del campo, ahora que recuerdo me parece que en las consultas de Acces pasaba lo mismo si se uitilizaba el campo de nombre nombre, valga la redundancia.

Un Saludo.

El nombre de ese campo no lo puedo cambiar, porque hay un monton de aplicaciones donde se utiliza, y no quiero empezar a cambiar eso...

Ya probe poniendolo entre corchetes y nada...

Le paso los link que me pidieron para que vean la tabla y el dbgrid.

http://www.yourfilehost.com/media.ph...ile=dbgrid.JPG
http://www.yourfilehost.com/media.ph...=Tabla_SQL.JPG


La franja horaria es GMT +2. Ahora son las 16:29:31.

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