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)

Caral 19-09-2007 22:48:01

Hola
Es curioso, pero que tiene que ver el dbgrid, con la tabla?
El dbgrid, esta trallendo la informacion con que query?
Donde se muestra la informacion del query que nos enseñaste?
No se, algo es pasando y no lo entiendo.
Saludos

Nomad 19-09-2007 23:01:28

Cita:

Empezado por Caral (Mensaje 232366)
Hola
Es curioso, pero que tiene que ver el dbgrid, con la tabla?
El dbgrid, esta trallendo la informacion con que query?
Donde se muestra la informacion del query que nos enseñaste?
No se, algo es pasando y no lo entiendo.
Saludos

Yai me pidieron que hicieron un query1 con select * from empleados y que le pegara un dbgrid para ver que devolvia, y devuelve todo menos el campo de nombre y tambien les mande un screenshot de la base de datos en SQL Server para que vieran donde esta el campo y con el nombre...

egostar 19-09-2007 23:10:23

Cita:

Empezado por Nomad (Mensaje 232369)
Yai me pidieron que hicieron un query1 con select * from empleados y que le pegara un dbgrid para ver que devolvia, y devuelve todo menos el campo de nombre y tambien les mande un screenshot de la base de datos en SQL Server para que vieran donde esta el campo y con el nombre...

Vaya, pues ahi no te pone dos campos, Nombre y Cedula...:eek:

Esto si está fuera de mi alcance, estos dos campos tienen el mismo tipo de datos?

Salud OS

Caral 19-09-2007 23:14:34

Hola
Esto es de las cosas que solo pasan una vez cada mil años y te toco.:D
Has probado con un table ?
Estas seguro que es la misma base de datos?
esto te lo digo porque yo trabajo con dos y a veces me a pasado, actualizo una y creo que estoy trabajando con esa y no es asi.
Sinceramente se me acaban las neuronas, voy a tener que comprar mas.:D
Saludos

Nomad 19-09-2007 23:16:09

Cita:

Empezado por egostar (Mensaje 232375)
Vaya, pues ahi no te pone dos campos, Nombre y Cedula...:eek:

Esto si está fuera de mi alcance, estos dos campos tienen el mismo tipo de datos?

Salud OS

Tenes razon tambien falta cedula no lo habia notado, y uno es de tipo Nvarchar(50) y el es varchar(20).

Caral 19-09-2007 23:27:37

Hola
Y cambiando el tipo de varchar a solo char, no se si lo hay en sql server.
Si mi amigo Egostar lo dice debe ser por algo, recuerda que la edad manda.
Saludos

egostar 19-09-2007 23:34:19

Cita:

Empezado por Caral (Mensaje 232382)
Hola
Y cambiando el tipo de varchar a solo char, no se si lo hay en sql server.
Si mi amigo Egostar lo dice debe ser por algo, recuerda que la edad manda.
Saludos

:D:D:D:D A que mi amigo Carlos :cool:

Veo que tienes un campo que se llama IdEmp, de casualidad el Nombre y la Cedula no la muestras de otra tabla:confused:

No veo como es que no te los muestra en el grid....

Salud OS

waly2k1 20-09-2007 04:39:05

Posible Solucion
 
Código SQL [-]
SQL := 'SELECT Nombre, Departamento FROM dbo.Empleados WHERE Codigo=' +  EdNCodigo.Text + ' and Activo = 1';

Código:

Query1.SQL.Text := SQL;
Query1.Active := True;
EdSNombre.text := Query1.FieldByName( 'Nombre' ).Value;

Hacé referencia directamente por el nombre del campo y no te preocupes si te trae en el primer, segundo o enésimo lugar.

Seguramente es algo que tenés mal en los campos del query, borralo y creá uno nuevo. La sentencia SQL está bien, pero los campos del Query seguramente no.

Hacé doble click sobre el query y te abre una ventana de propiedades con los campos, click derecho y le das a la opcion Select All, Delete y Add all fields despues. Seguramente acá te quedará bien.

Yo te aconsejo que cambies la propiedad SQL del Query en diseño, fijate que estará mal.

Saludos y espero serte util.

rolandoj 24-09-2007 00:47:20

Se encontró la solución ?
 
Hola a todos,

Se encontró alguna solución a este caso ?. Yo he tenido un problema que si bien no es exactamente el mismo, en el fondo es muy similar. Pueden verlo en :

http://www.clubdelphi.com/foros/showthread.php?t=48362

waly2k1 24-09-2007 03:46:27

Rta. a Rolando
 
Cita:

Empezado por rolandoj (Mensaje 233277)
Hola a todos,

Se encontró alguna solución a este caso ?. Yo he tenido un problema que si bien no es exactamente el mismo, en el fondo es muy similar. Pueden verlo en :

http://www.clubdelphi.com/foros/showthread.php?t=48362

Rolando, en tu ejemplo usas DBExpress que desconozco, ya que creo que si debo trabajar con una BD de Microsoft, ya sea Access o SQL Server lo mejor es usar ADO. En este caso nuestro amigo tiene un lio con los campos del Query ya que el cambia en tiempo de ejecución la consulta, pero en tiempo de diseño debe tener todos los campos al revés, puede apuntar a otra tabla/base o vaya Dios a saber que pueda estar seleccionando. Con ADO este tipo de cosas no puede pasar, no es error del motor ni de Delphi ni de los componentes sino de usuario. Siempre hay algo que se descuida y zas ahí está el dichoso problema.

Saludos

rolandoj 24-09-2007 06:40:19

Es probable; pero ...
 
Cita:

Empezado por waly2k1 (Mensaje 233294)
Rolando, en tu ejemplo usas DBExpress que desconozco, ya que creo que si debo trabajar con una BD de Microsoft, ya sea Access o SQL Server lo mejor es usar ADO. En este caso nuestro amigo tiene un lio con los campos del Query ya que el cambia en tiempo de ejecución la consulta, pero en tiempo de diseño debe tener todos los campos al revés, puede apuntar a otra tabla/base o vaya Dios a saber que pueda estar seleccionando. Con ADO este tipo de cosas no puede pasar, no es error del motor ni de Delphi ni de los componentes sino de usuario. Siempre hay algo que se descuida y zas ahí está el dichoso problema.

Saludos

Hola,

Pués sí, es probable que el problema sea de usuario; pero no estoy tan seguro como tú ya que lo más lógico es que el error sea porque los campos persistentes los tenga mal definidos; sin embargo, eso ya se le sugirió y curiosamente, según lo que cuenta, ni siquiera el editor de campos detecta bien el campo faltante, incluso con el query re-escrito. Además, el problema que yo encontré, que a su vez tiene reportes en Borland de situaciones similares, parexe indicar la presencia de errores en la determinación de los campos que deben devolver algunos queries.

Por otra parte, aunque SQL Server es una de las bases de datos que uso a diario desde hace años, no estoy muy familiarizado con sus peculiaridades ya que yo uso una metodología de portabilidad que limita el trabajo a un subconjunto standard de la funcionalidad del motor. Lo que si te puedo comentar es que siempre he usado el BDE para accesarla y nunca he tenido problemas.

Saludos

waly2k1 28-09-2007 05:51:52

Otra cosa
 
Rolando otra cosa, si tenes problemas con los campos persistentes lo mejor es poner active en true y despues en false o viceversa, de esta manera se refresca la info de campos y te aparecen los campos que agregaste a la tabla o en la consulta despues de crearla.

Saludos

rolandoj 28-09-2007 06:29:43

Gracias. Comentarios en mi propio hilo
 
Cita:

Empezado por waly2k1 (Mensaje 234618)
Rolando otra cosa, si tenes problemas con los campos persistentes lo mejor es poner active en true y despues en false o viceversa, de esta manera se refresca la info de campos y te aparecen los campos que agregaste a la tabla o en la consulta despues de crearla.

Saludos

Hola,

Gracias por la observación. Como eso es más bien mirar el problema mío, te contesto en mi propio hilo. Puedes consultarlo aquí:

http://www.clubdelphi.com/foros/showthread.php?t=48362

Saludos

JOSEA 04-10-2007 13:15:25

Prueba esto
 
Raro, raro, raro ... quizas con esto te funcioneQuery1.SQL.Text := 'Select "Nombre" as minombre, Departamento from Empleados where Codigo = :codigo and Activo = 1';Query1.Active := True;Query1.ParamByName('codigo').AsString := EdNCodigo.Text;EdSNombre.text := Query1.fieldbyname['minombre'].AsString;

JOSEA 04-10-2007 13:34:30

Perdon, perrdon por la edicion anterior


Código Delphi [-]
Query1.SQL.Text := 'Select "Nombre" as minombre, Departamento from Empleados where Codigo  :codigo and Activo = 1';
Query1.Active := True;
Query1.ParamByName('codigo').AsString := EdNCodigo.Text;
EdSNombre.text := Query1.FieldbyName['minombre'].AsString;


La franja horaria es GMT +2. Ahora son las 07:39:47.

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