Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 31-01-2017
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
Una pregunta...

el campo BOARD_ONT es de la tabla CTRLONT ?

Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #2  
Antiguo 31-01-2017
koalasoft koalasoft is offline
Miembro
 
Registrado: oct 2004
Ubicación: Tenosique Tabasco
Posts: 86
Poder: 20
koalasoft Va por buen camino
Cita:
Empezado por fjcg02 Ver Mensaje
Una pregunta...

el campo BOARD_ONT es de la tabla CTRLONT ?

Saludos
Asi es estimado !! es un campo de la Tabla CTRLONT de tipo INT [int(11)] de la BD Mysql.
Responder Con Cita
  #3  
Antiguo 31-01-2017
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
Hola, lo normal es asignar la sql y luego dar valor a los parámetros, es decir, después de hacer query.Sql.Add(), defines el valor del parámetro. Yo creo que no hace falta declararlo, solamente asignarle el valor.

Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #4  
Antiguo 31-01-2017
bitbow bitbow is offline
Miembro
 
Registrado: jul 2006
Posts: 366
Poder: 18
bitbow Va camino a la fama
Revisa si tienes los parametros creados puesto que estas asignando el Query en runtime deberias de crear los parametros ya que no existen aun.

En las propiedades del TQuery te das cuenta en Parameters si tienes dados de alta alguno.

Saludos.
__________________
¡Ni como ayudarte Niño!!
bitbow
Responder Con Cita
  #5  
Antiguo 31-01-2017
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Tal y como respondi en DelphiAccess:

El componente internamente interpreta la sentencia SQL y crea automaticamente los parametros; no hace falta que invoques para nada al metodo Parameters.AddParameter

Osea por ejemplo, con un SQL asi:

Código Delphi [-]
  ADOQuery.SQL.Add(...)
  ADOQuery.SQL.Add(' WHERE Campo = :Param ');
  ADOQuery.Parameters.ParamByName('Param') --> devuelve el TParameter correspondiente

Se crea automaticamente un objeto TParameter con nombre o "identificador" 'Param'.

Si por algun motivo te interesa desactivar esto ultimo y encargarte vos mismo de crear los parametros, debes setear la propiedad ParamCheck a False

El problema son los parametros pero por ambiguedad; internamente la coleccion TParameters del TADOQuery va a tener dos parametros llamados igual y uno va a quedar sin un valor definido y por eso tiene conflicto de datos

Prueba de concepto (necesario que el ADOQuery tenga su propiedad Connection seteada a una conexion "valida")

Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
var
  Param: TParameter;
begin
  ADOQuery1.SQL.Text := ' SELECT * FROM Clientes WHERE Nombre = :Nombre ';
  Param := ADOQuery1.Parameters.AddParameter;
  Param.Name := 'Nombre';
  Param.DataType := TFieldType.ftInteger;
  ShowMessage(ADOQuery1.Parameters.Count.ToString); // imprime 2
  if ADOQuery1.Parameters.ParamByName('Nombre') <> Param then // evalua true
    ShowMessage('son distintos objetos');
end;
Responder Con Cita
  #6  
Antiguo 01-02-2017
koalasoft koalasoft is offline
Miembro
 
Registrado: oct 2004
Ubicación: Tenosique Tabasco
Posts: 86
Poder: 20
koalasoft Va por buen camino
Bueno no se si sea la forma mas elegante o teng consecuencia a futuro .. pero al menos de esta forma me funcionó..

Puse los valores en una variable ..

Código PHP:
Var   B,F,S,P,integer;
..
.
.
// Variables
B:= StrToInt(Edit1.Text);
F:= StrToInt(Edit2.Text);
S:= StrToInt(Edit3.Text);
P:= StrToInt(Edit4.Text);
O:= StrToInt(Edit5.Text); 
De alli aplique la consulta siguiente ...

Código PHP:
Close;
   
SQL.Clear;
   
SQL.Add('SELECT * FROM CTRLONT CTRL ');
   
SQL.Add('join CLIENTES CL on CTRL.FOLIO = CL.FOLIO ');
   
SQL.Add('join ONTs ONT on CTRL.FOLIO = ONT.Folio ');
   
SQL.Add('WHERE CTRL.BOARD_ONT = 'IntToStr(B));
   
SQL.Add(' AND CTRL.FRAME_ID = 'IntToStr(F));
   
SQL.Add(' AND CTRL.SLOT_ID = 'IntToStr(S));
   
SQL.Add(' AND CTRL.PORT_ID = '+  IntToStr(P));
   
SQL.Add(' AND CTRL.ONT_ID = '+  IntToStr(O));
   
Open
Y ahora si no me envió NINGUN mensaje de error y me ejecuto la búsqueda al menos como lo hacía antes.
Responder Con Cita
  #7  
Antiguo 01-02-2017
bitbow bitbow is offline
Miembro
 
Registrado: jul 2006
Posts: 366
Poder: 18
bitbow Va camino a la fama
No es la forma adecuada, puedes llegar a tener problemas con los tipos de datos o cadenas con comilla simple, lo ideal es usar los params ya que con ellos te evitas esos temas.

Revisando lo que comenta Agustin es correcto, al agregar a la setencia ":valor" el parametro es creado automaticamente, revisa si el prefijo de params esta como caracter ":" , en algunso caso viene como "@" (en algun componente lo llegue a ver) y la otra es el params check que se encuentr en false, por ultimo te recomendaria (si tu sentencia es fija y siempre usa los mismos parametros) setearla desde diseño y ahi podras ver si se crean los parametros y asignarle valores en diseño para pruebas.

Saludos.
__________________
¡Ni como ayudarte Niño!!
bitbow
Responder Con Cita
Respuesta



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
conflicto entre aplicaciones zajoma Tablas planas 3 27-05-2008 17:48:58
Conflicto entre puertos jsanchez API de Windows 2 07-09-2007 00:37:17
Conflicto entre nospE y eagS marcoszorrilla La Taberna 3 09-01-2007 18:34:23
Query entre dos tablas de distintas databases tefots Firebird e Interbase 2 06-11-2006 15:28:29
Conflicto entre Query y Tabla filtrada Michael Varios 2 20-05-2004 21:37:43


La franja horaria es GMT +2. Ahora son las 19:06:20.


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
Copyright 1996-2007 Club Delphi