![]() |
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 |
Hola
Me parece curioso, no debería de pasar. Primero te aconsejo que utilices la etiquetas delhi, se entendera mejor. No entiendo la razón. Coloca en la pantalla del query los campos, tal vez ayude. Saludos |
Cita:
A que te refieres con que coloque en la pantalla del query los campos. Cual pantalla? |
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. 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 |
a lo mejor diste de alta los campos persistentes y necesitas agregar el de nombre
|
Cita:
Esta raro, verdad? |
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 |
Cita:
|
Por si acaso:
Un Saludo. |
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 |
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 |
Cita:
|
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 |
Cita:
La verdad me tiene desconcertado... |
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. |
Cita:
|
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. |
Cita:
Porque no colocas aqui la imagen de tu base de datos y la imagen de lo que te muestra el grid.... Salud OS |
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. |
Cita:
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 |
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 |
Cita:
|
Cita:
Esto si está fuera de mi alcance, estos dos campos tienen el mismo tipo de datos? Salud OS |
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 |
Cita:
|
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 |
Cita:
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 |
Posible Solucion
Código:
Query1.SQL.Text := SQL; 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. |
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 |
Rta. a Rolando
Cita:
Saludos |
Es probable; pero ...
Cita:
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 |
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 |
Gracias. Comentarios en mi propio hilo
Cita:
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 |
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;
|
Perdon, perrdon por la edicion anterior
|
La franja horaria es GMT +2. Ahora son las 17:58:35. |
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