Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-04-2007
Avatar de karlaoax
karlaoax karlaoax is offline
Miembro
 
Registrado: oct 2003
Ubicación: Monterrey
Posts: 280
Poder: 23
karlaoax Va por buen camino
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?
Responder Con Cita
  #2  
Antiguo 24-04-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¿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
Responder Con Cita
  #3  
Antiguo 24-04-2007
Avatar de karlaoax
karlaoax karlaoax is offline
Miembro
 
Registrado: oct 2003
Ubicación: Monterrey
Posts: 280
Poder: 23
karlaoax Va por buen camino
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
Responder Con Cita
  #4  
Antiguo 24-04-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
Que tal asi:
Código Delphi [-]
MyQuery.close;
MyQuery.Sql.Text:= 'SELECT codigo,stock,stockminimo'+
                   'FROM articulo'+
                   'WHERE codigo='+IntToStr(txtcodigo.Text);
MyQuery.Sql.Open;
Showmessage(MYQuery.SQL.Text);
Con esto veo que datos me envio la sentencia sql.
Correcto Roman?
Saludos
Responder Con Cita
  #5  
Antiguo 24-04-2007
Avatar de karlaoax
karlaoax karlaoax is offline
Miembro
 
Registrado: oct 2003
Ubicación: Monterrey
Posts: 280
Poder: 23
karlaoax Va por buen camino
Thumbs down

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
Responder Con Cita
  #6  
Antiguo 24-04-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por karlaoax
el Datasorce su propiedad DATASET: MyTable1
¿Qué no debería apuntar a MyQuery?

// Saludos
Responder Con Cita
  #7  
Antiguo 24-04-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
Claro Roman, el problema esta en esto:
Cita:
1 Mytable
1 Myquery
Para mi los dbedit estan apuntando a MyTable y no a MyQuery.
Tienes razon
Ademas, para que los dos?
Saludos
Responder Con Cita
  #8  
Antiguo 24-04-2007
Avatar de karlaoax
karlaoax karlaoax is offline
Miembro
 
Registrado: oct 2003
Ubicación: Monterrey
Posts: 280
Poder: 23
karlaoax Va por buen camino
Talking

Gracias Caral

Ya esta
Responder Con Cita
  #9  
Antiguo 24-04-2007
Avatar de karlaoax
karlaoax karlaoax is offline
Miembro
 
Registrado: oct 2003
Ubicación: Monterrey
Posts: 280
Poder: 23
karlaoax Va por buen camino
Talking Listisimo

Muchas garcias Roman, problema resuelto :P

Codigo funcionando al 100%
Responder Con Cita
  #10  
Antiguo 24-04-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Caral
Hola
Que tal asi:
Código Delphi [-]
MyQuery.close;
MyQuery.Sql.Text:= 'SELECT codigo,stock,stockminimo'+
                   'FROM articulo'+
                   'WHERE codigo='+IntToStr(txtcodigo.Text);
MyQuery.Sql.Open;
Showmessage(MYQuery.SQL.Text);
Con esto veo que datos me envio la sentencia sql.
Correcto Roman?
Saludos
En cuanto a esto: MyDac tiene la facilidad de depurar las sentencias SQL que se mandan sin tener que recurrir a poner ShowMessages aquí y allá

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:

Código SQL [-]
SELECT *FROM productos WHERE codigo=:codigo

y se sustituye el valor al mandar la consulta:

Código Delphi [-]
MyQuery1.ParamByName('codigo).AsString := txtcodigo.Text;
MyQuery1.Open;

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
Responder Con Cita
  #11  
Antiguo 24-04-2007
Avatar de karlaoax
karlaoax karlaoax is offline
Miembro
 
Registrado: oct 2003
Ubicación: Monterrey
Posts: 280
Poder: 23
karlaoax Va por buen camino
Gracias

Buen tip que aplicare con este nuevo componente que se me hace muy interesante :P MyDac & MySQL
Responder Con Cita
  #12  
Antiguo 24-04-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
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
Responder Con Cita
  #13  
Antiguo 25-04-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
El problema de parámetros, tampoco es grabe, en lugar de llamar a ShowMessage, llamamos a nuestra rutina:

Código Delphi [-]
procedure VerSentenciaSql(dt:TMDOQuery);
var i:Integer;
    Sql:string;
    ReplaceTo:string;
begin
  sql := dt.SQL.Text;
  for i := 0 to dt.params.count - 1 do
  with dt.Params[i] do
  begin
    case datatype  of
      ftDate : ReplaceTo := FormatDateTime('dd/mm/yyyy',AsDAte);
      ftDatetime: ReplaceTo := FormatDateTime('dd/mm/yyyy hh:nn:ss', AsDAtetime);
      ftTime : ReplaceTo := FormatDateTime('hh:nn:ss', Astime);
    else
      ReplaceTo := AsString;
    end;
    sql := ReplaceText(sql, ':'+Name,  ReplaceTo);

  end;
  ShowMessage(dt.sql.text);
end;

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.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

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


La franja horaria es GMT +2. Ahora son las 21:00:16.


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