FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Problemas con Select
Hola estoy empezando a trabajar con el componente MyDac para delphi - MySql. y tengo un problema al momento de hacer consultas. Tengo una base llamada Articulo con los campos: Codigo,Stock,StockMinimo.
Los componentes q utilizo en delphi 7: 1 Myconection 1 Datasource 1 Mytable 1 Myquery 1 Edit (llamado txtcodigo) 2 DBEdits Todos enlazados como corresponde. El codigo que tengo eb MyQuery: SELECT codigo,stock,stockminimo FROM articulo WHERE codigo=:codigo // Lo paso como parametro En mi boton: MyQuery.close; MyQuery.Sql.Add('SELECT codigo,stock,stockminimo'); MyQuery.Sql.Add('FROM articulo'); MyQuery.Sql.Add('WHERE codigo='+txtcodigo); MyQuery.Sql.Open; MyQuery.Execute; Pero me manda este mensaje de Error: Project1.exe raised exception class en myerror with the message 'You have an error in your Sql Sintax; check the manual that corresponds to your MySql server version for the right syntax to use near 'Select codigo,stock,stockminimo From articulo where codigo=3" at line 4 Cuando escribo en txtcodigo un valor ejemplo 3, si lo pasa, pero despues manda el mensaje de arriba, Ya probe la sintaxis en mysql y si la ejecuta, con el componente MyQuery, tambien funciona lo he probado con ejecutar. Pero no se si mi codigo de mi boton tenga un error. Si alguien tiene una suregencia se lo agradecere. P.D En mi Base de Datos tengo declartado como Integer Codigo, de todas formas, ya lo he convertido en delphi de inttostr y no funciona. Atte. Karla |
#2
|
|||
|
|||
Lo que no entiendo es si tienes definida la consulta con el parámetro :codigo, porque vuelves a crearla.
Prueba así, quizás te solucione el problema:
No conozco los componentes MyDac, pero supongo que MyQuery.Execute sobra, ya que se suele utilizar para consultas que no devuelven ningún resultado (tipo INSERT, DELETE...). |
#3
|
||||
|
||||
Hola
Para mi: Codigo es integer y lo llamas deste un edit que es string: Prueba esto: Para mi si te da error de sintaxis es porque busca txtcodigo como un texto y el campo es numerico por eso al poner el numero 3 en vez de este, te funciona. Saludos |
#4
|
||||
|
||||
Resumiendo:
El codigo que tengo eb MyQuery: En mi boton:
Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#6
|
|||
|
|||
Cita:
Apuntado para la próxima. |
#7
|
||||
|
||||
De todas formas he tratado de varias formas y:
1.- No me sale el erro mencionado, pero no me muestra los datos que le corresponden a la clave del producto, y ya cheque que los DBedit's estuvieran bien 2.- sigue saliendo el error Mi codigo esta probado con Interbase y qsi sale.... Sera un error del componente MyDac? |
#8
|
||||
|
||||
¿Cuál es el tipo de datos del campo codigo?
Por otra parte, si donde esté la componente MyQuery incluyes la unidad MyDacVCL, puedes poner la propiedad Debug de MyQuery en true para que te muestre las consultas que va a mandar al servidor. Así te darás cuenta exacta de la consulta que se está mandando. // Saludos |
#9
|
||||
|
||||
listo, mira siempre que ejecuto mi codigo:
En MYQUERY: SELECT codigo,stock,stockminimo FROM productos WHERE codigo=codigo // Pasado como parametro En un _Boton MyQuery1.close; MyQuery1.SQL.text:='SELECT *FROM productos WHERE codigo="'+txtcodigo.text+'"'; MyQuery1.Open; Donde txtcodigo es el parametro q le pase de mi consulta, hasta aqui todo bien. Pero cuando pongo un valor cualquiera en txtcodigo de mi formulario, siempre me muestra el registro 1 de mi tabla, y no el que realmente deber de corresponderle al valor escrito. Ya cheque que todo este bien, y no hay problema, ya cambie en mi tabla de Integer a Varchar el campo codigo, y el resultado sigue siendo el mismo. Creo que el componente tiene fallas, pues ya lo cheque con Interbase y ahi si que funciona. Estoy empezando a utilizar MyDac y ando un poco perdida |
#10
|
||||
|
||||
Hola
Que tal asi: Con esto veo que datos me envio la sentencia sql. Correcto Roman? Saludos |
#11
|
||||
|
||||
Revisado, si pasa mi parametro recibido en mi txtcodigo.
Pero sigue sin mostrarme la informacion que le corresponde a stock y stockminimo. mis dbedits apuntan a: DATASOURCE1 y el Datasorce su propiedad DATASET: MyTable1 No entiendo que parte de mi codigo esta fallando, si realmente recibe el parametro que le paso, por que no muestra la informacion que le corresponde a mi txtcodigo en sus dbedits correspondientes. Mi campo CODIGO en mysql es Varchar. Karla |
#12
|
||||
|
||||
Cita:
// Saludos |
#13
|
||||
|
||||
Hola
Claro Roman, el problema esta en esto: Cita:
Tienes razon Ademas, para que los dos? Saludos |
#14
|
||||
|
||||
Listisimo
Muchas garcias Roman, problema resuelto :P
Codigo funcionando al 100% |
#15
|
||||
|
||||
Gracias Caral
Ya esta |
#16
|
||||
|
||||
Cita:
Para ello debe agregarse la unidad MyDacVCL en la cláusula uses y poner en true la propiedad Debug de la componente que se desee depurar. Esto- además de la facilidad - tiene la ventaja de que puede verse no sólo el texto de la consulta sino los valores de los parámetros. Por ejemplo, la consulta que aquí nos ocupó, podría (¿debería?) usarse con parámetros:
y se sustituye el valor al mandar la consulta:
El problema de hacerlo así es que dificulta saber exactamente qué se pasa al servidor, porque MyQuery.SQL.Text contiene el texto antes de sustituir los parámetros. El depurador te mostrará cuáles son esos parámetros. Cuando lanzas la consulta, MyDac automáticamente te presenta una ventana con estos datos. // Saludos |
#17
|
||||
|
||||
Gracias
Buen tip que aplicare con este nuevo componente que se me hace muy interesante :P MyDac & MySQL
|
#18
|
||||
|
||||
Hola
Muy interesante Roman, lo tendre en cuenta si algun dia uso mydac, por ahora con my escaso ado, necesito el mensaje. , que envidia. Saludos |
#19
|
||||
|
||||
El problema de parámetros, tampoco es grabe, en lugar de llamar a ShowMessage, llamamos a nuestra rutina:
No incluirá las comillas simples, pero como ya sabemos, eso no es problema cuando se usa parámetros. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Problema conuna consulta select...not in (select ...) | VRO | Firebird e Interbase | 2 | 11-08-2005 08:56:35 |
5 select de 5 tablas diferentes en un select solo | sakuragi | SQL | 6 | 15-06-2005 18:57:06 |
Problemas al hacer SELECT con ADOQuery | hunabku | Conexión con bases de datos | 1 | 18-05-2005 01:08:28 |
Select anidado ( Select from select ) | Malon | Firebird e Interbase | 1 | 05-10-2004 04:14:38 |
Problemas select en Oracle | mateamargo | SQL | 12 | 08-07-2004 16:03:59 |
|