![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
1. La instrucción DataModule1.ADOQuery1.ExecSQL está demás. ExecSQL o sus equivalentes en otros dataset se utilizan cuando la consulta no devuelve un conjunto de resultados, por ejemplo en una instrucción Update o Delete.
2. El operador SQL LIKE, en la mayoría de los motores de bases de datos, requiere que el segundo operando (en este caso NCli) sea de tipo alfanumérico, por lo que es posible que tu código trabaje bien de la siguiente manera:
Espero te sirva. |
|
#2
|
|||
|
|||
|
Gracias por tu aportación, intente lo que me has recomendado y obtengo el mismo resultado. Pondre el código completo. Quizas ahí este el error y no lo note.
procedure TForm1.BitBtn1Click(Sender: TObject); Var NClie : integer; begin If Edit1.Text <>'' Then Begin Try NClie := StrToInt(Edit1.Text); DataModule1.ADOQuery1.SQL.Clear; ShowMessage('El valor de la variable es:'+' '+IntToStr(NClie)); <---- Agregue esta ventana para ver el valor que lleva NCLie y es correcto A) DataModule1.ADOQuery1.SQL.Add('SELECT * FROM CLIENTE WHERE CLAVE=:NClie'); <---- En esta parte le cambie el LIKE por el WHERE B) DataModule1.ADOQuery1.SQL.Add('SELECT * FROM CLIENTE WHERE CLAVE LIKE :Nclie'); <---- El DBGrid esta vacio con LIKE o WHERE DataModule1.ADOQuery1.Parameters.ParamValues['NCLie'] := Edit1.Text;; DataModule1.ADOQuery1.Open; Form2 := TForm2.Create(Self); Form2.ShowModal; Except ShowMessage('Lo siento no puedo abrir la base de datos'); End End Else end; Gracias por su atención |
|
#3
|
||||
|
||||
|
Como diría Casimiro...
Recuerda poner los tags al código fuente, ejemplo: ![]() Gracias ![]()
__________________
La Madurez se llama... ~~~Gaia~~~ |
|
#4
|
||||
|
||||
|
Lo primero: ¿Clave es numérico o alfanumérico?.
El LIKE no me cuadra mucho siendo numérico, la verdad. Yo dejaría la consulta A). Por otra arte, en la asignación te has hecho un lío, creo. Usas una variable que se llama igual que el parámetro que no te sirve para nada, y aunque fuera el parámetro, el valor lo compruebas antes de asignarle un valor... Bueno, mira a ver si ésto te sirve:
__________________
La Madurez se llama... ~~~Gaia~~~ |
|
#5
|
|||
|
|||
|
Que tal, buen dia de nuevo por aqui. gracias a su ayuda y comentarios que me han hecho; les comento que le busque de una forma de otra y nada no arroja informacion en DBGrid. en ocasiones daba errores, cambie los campos de consulta y nada. Para entonces de buscar y buscar siempre en la misma tabla decidi cambiar a otra, la sorpresa fue que la consulta si se realizaba. Por lo que asumo que es la tabla la que arroja el error.
La estructura de la tabla CLIENTEy en especifico del campo que intente consultar ("CLAVE") es "Texto" y el motor de la BD es MS SQL server 2008 no tengo idea de como realizar esta consulta dado que el campo en especifico no muestra nada en consulta y es precisamente el que requiero para obtener la informacion Esta es la nueva consulta en la cual he cambiado a la tabla de INVENTARIO y el campo CVE_ART y funciona muy bien pero no es la tabla que requiero consultar. Alguien que tenga alguna idea? Saludos |
|
#6
|
|||
|
|||
|
Que tal, buen dia de nuevo por aqui. gracias a su ayuda y comentarios que me han hecho; les comento que le busque de una forma de otra y nada no arroja informacion en DBGrid. en ocasiones daba errores, cambie los campos de consulta y nada. Para entonces de buscar y buscar siempre en la misma tabla decidi cambiar a otra, la sorpresa fue que la consulta si se realizaba. Por lo que asumo que es la tabla la que arroja el error.
La estructura de la tabla CLIENTE y en especifico del campo que intente consultar ("CLAVE") es "Texto" y el motor de la BD es MS SQL server 2008 no tengo idea de como realizar esta consulta dado que el campo en especifico no muestra nada en consulta y es precisamente el que requiero para obtener la informacion Esta es la nueva consulta en la cual he cambiado a la tabla de INVENTARIO y el campo CVE_ART y funciona muy bien pero no es la tabla que requiero consultar. Alguien que tenga alguna idea? Saludos |
|
#7
|
|||
|
|||
|
Nuevamente entro para solicitar de su ayuda como amablemente lo han hecho. en el mensaje anterior les comente que cambiando de tabla se hacia la consulta sin problema. Encontré también que el campo en especifico esta marcado como TEXTO (imagino que string) y de longitud 10. regrese la tabla y campo inicial de la consulta y dado que el tamaño del campo es 10 decidí ingresar en el Edit1 (en ejecución) los espacios correspondientes junto con el numero de cliente por ejemplo 105 lo ingrese como ' 105' (claro sin las comillas) dejando los campos como parte de la cadena a fin de completar los 10 del largo del campo y trabajo ya la consulta. Ahora la pregunta es como recorto en tiempo de ejecución ese molesto espacio espacio espacio espacio,,,, numero para tener los 10 dígitos? si me explico, solo ingresar los dígitos del cliente.
Gracias |
|
#8
|
||||
|
||||
|
Si el campo es texto, debería de ir entre comillas. Para ponerle las comillas yo uso la función QuotedStr:
__________________
La Madurez se llama... ~~~Gaia~~~ Última edición por ozsWizzard fecha: 25-07-2014 a las 07:44:32. |
|
#9
|
||||
|
||||
|
Hola José.
Cita:
También te puede resultar interesante revisar las funciones Trim y TrimRight Saludos ![]()
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
|
#10
|
||||
|
||||
|
Cita:
Una alternativa a la que te ofrece ecfisa podría ser la función LTRIM de SQL Server:
Es decir, en lugar de llenar los espacios faltantes en el valor del parámetro, quitamos los espacios sobrantes del valor del campo. // Saludos |
|
#11
|
||||
|
||||
|
Cita:
1.- ¿Funciona PERFECTAMENTE en MS SQLServer la consulta que quieres hacer? Es decir, si te vas al manejador de SQLServer, abres una ventana de query, tecleas la consulta y la ejecutas, ¿te arroja los resultados que necesitas? 2.- No consignas qué versión de MS SQLServer utilizas, pero en la 2002 y 2008 R2 hay un error que hace que los parámetros que envías a una consulta NO SE 'TRADUZCAN' ADECUADAMENTE dentro del motor, y para ésto DEBES necesariamente "armar" tu consulta en modo texto respetando los tipos de columna de la(s) tabla(s). 3.- ¿Limpias tu TADOQuery después de ejecutarlo? ¿Eliminas los parámetros? También puede ser 'algo' que se quede pendiente... Creo que con ésto podrías resolver ésta duda. Si no, buscaremos otra posible solución.
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively... "Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum. Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Estructuras de parametros en delphi | jularaXD | Varios | 9 | 11-03-2014 14:54:25 |
| Parametros en ReportBuilder 14 Delphi XE2 | papycool | Impresión | 0 | 19-09-2013 22:25:12 |
| Problema con parametros en Delphi for .Net | lalosan | SQL | 3 | 27-02-2007 22:01:02 |
| Parametros Delphi 2006 | raorre | OOP | 3 | 28-07-2006 18:18:58 |
|