Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-09-2004
saul saldaña saul saldaña is offline
Miembro
 
Registrado: ago 2003
Ubicación: Chiapas, Mexico
Posts: 11
Poder: 0
saul saldaña Va por buen camino
como paso parametros con TAdoQuery ..?

Hola a todos, espero poder contar con su ayuda,, saben estoy usando el objeto TAdoQuery, pero quiero hacer una consulta en donde lleno el contenido del resultado en un combobox, pasandole un parametro por ejemplo :
//********************

TADOQuery.Close;
aSql := 'Select * from Tabla where campo1 = :vParametro ';
TADOQuery.SQL.Add(aSql);
TADOQuery.Parameters.ParamByName('vParametro').Value := Text1.Text;
TADOQuery.Open

While not not (TADOQuery.Eof) do
begin
Combo.Items.Add (TADOQuery.FieldByName('campo1').Asstring);
TADOQuery.Next;
end; //end del while
//*********************

NOTA : pero al momento de corre esto me dice el sig. error..
"Error de sintaxis en la expresion campo1, select * from Tabla Where
campo1 =? " .

Aprovechando el hilo.. que diferencia existe entre usar :
TADOQuery.Open y TADOQuery.Active := True;
TADOQuery.Close y TADOQuery.Active := Falsee;
y usar TADOQuery.ExecSql de los dos anteriores, para disparar una
consulta sql.


espero poder contar con su valiosa ayuda,, gracias de antemano..
__________________
Saul Saldaña Perez

Última edición por saul saldaña fecha: 11-09-2004 a las 17:45:27.
Responder Con Cita
  #2  
Antiguo 11-09-2004
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 saul saldaña
NOTA : pero al momento de corre esto me dice el sig. error..
"Error de sintaxis en la expresion campo1, select * from Tabla Where
campo1 =? " .
No sé si sea error al escribir aquí el texto pero en ParamByName tienes vParamtro en lugar de vParametro


Cita:
Empezado por saul saldaña
Aprovechando el hilo.. que diferencia existe entre usar :
TADOQuery.Open y TADOQuery.Active := True;
TADOQuery.Close y TADOQuery.Active := Falsee;
Ninguna


Cita:
Empezado por saul saldaña
y usar TADOQuery.ExecSql de los dos anteriores, para disparar una
consulta sql.
Open se usa para consultas que regresan registros (SELECT) mientras que ExecSql se usa para consultas que no regresan registros (UPDATE, INSERT, DELETE)

// Saludos
Responder Con Cita
  #3  
Antiguo 11-09-2004
saul saldaña saul saldaña is offline
Miembro
 
Registrado: ago 2003
Ubicación: Chiapas, Mexico
Posts: 11
Poder: 0
saul saldaña Va por buen camino
sin funcionar consulta con TAdoQuery ..


Hola de nuevo,,, no funciona mi consulta.. espero me puedan sugerir algo.. gracias....
__________________
Saul Saldaña Perez
Responder Con Cita
  #4  
Antiguo 11-09-2004
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
La consulta funciona perfectamente la acabo de probar adaptándola a una tabla de prueba y con una rejilla conectada me presenta los registros sin ningún problema.

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
Var
aSql:String;
begin
TADOQuery.Close;
aSql := 'Select * from video where Coleccion = :vParametro ';
TADOQuery.SQL.Add(aSql);
TADOQuery.Parameters.ParamByName('vParametro').Value := Edit1.Text;
TADOQuery.Open
end;

Quizás no hayas definido VParametro?

Tienes que pulsar en el botón ... Parameters - AddNew darle el nombre Vparametro y en mi caso lo he definido como ftString.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #5  
Antiguo 11-09-2004
saul saldaña saul saldaña is offline
Miembro
 
Registrado: ago 2003
Ubicación: Chiapas, Mexico
Posts: 11
Poder: 0
saul saldaña Va por buen camino
sigue el mensaje de error...!!



hola , mira ya delcare mi variable y cheque todo lo demas, el caso esta asi.. es que en mi programa utilizo el TADOCOnnection la cual le asigno la bse de datos que esta en MS Acess 2000, y el TADOQuery le asigno en la propiedad conncection el Name de mi TADOConnection.

y el codigo es el sig:
//si esta conectado que lo desconecte
if TADOCOnnection.Connected then TADOCOnnection.Connected := False;
TADOQuery.Close; //cierro el TADOQuery
vSql := '';
vSql := 'Select * from producto where codigo =:vParametro ';
TADOCOnnection.Connected := True; //abra la conexion con la bd
TADOQuery.SQL.Add (vSql);
TADOQuery.Parameters.ParamByName('vParametro').Value := StrToint(Edit1.text);
TADOQuery.Open;
//** fin de mi programa...

espero contar con tu ayuda .. gracias.....!!!
__________________
Saul Saldaña Perez

Última edición por saul saldaña fecha: 11-09-2004 a las 21:03:08.
Responder Con Cita
  #6  
Antiguo 11-09-2004
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Cita:
hola , mira ya delcare mi variable
Por lo que se deduce de lo dicho parece ser que declaras una variable y no un parámetro?

Con una variable quedaría así:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
Var
aSql:String;
begin
TADOQuery.Close;
aSql := 'Select * from video where Coleccion =' +QuotedStr(MiVariable);
TADOQuery.SQL.Add(aSql);

TADOQuery.Open
end;

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #7  
Antiguo 20-12-2017
LuisHatake LuisHatake is offline
Miembro
NULL
 
Registrado: oct 2017
Posts: 14
Poder: 0
LuisHatake Va por buen camino
Cita:
Empezado por marcoszorrilla Ver Mensaje
La consulta funciona perfectamente la acabo de probar adaptándola a una tabla de prueba y con una rejilla conectada me presenta los registros sin ningún problema.

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
Var
aSql:String;
begin
TADOQuery.Close;
aSql := 'Select * from video where Coleccion = :vParametro ';
TADOQuery.SQL.Add(aSql);
TADOQuery.Parameters.ParamByName('vParametro').Value := Edit1.Text;
TADOQuery.Open
end;

Quizás no hayas definido VParametro?

Tienes que pulsar en el botón ... Parameters - AddNew darle el nombre Vparametro y en mi caso lo he definido como ftString.

Un Saludo.
Hola marcos, necesito su ayuda de ante mano muchas gracias. lo unico que busco es mostrar los datos de una consulta en una tabla u otro componente que me permita visualizar todos los datos de mi consulta (select * from tabla). uso TadoQuery en delphi 7. que componente me sugieren? y si me pueden apoyar con un poco de codigo muchas gracias.
Responder Con Cita
  #8  
Antiguo 20-12-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por LuisHatake Ver Mensaje
Hola marcos, necesito su ayuda de ante mano muchas gracias. lo unico que busco es mostrar los datos de una consulta en una tabla u otro componente que me permita visualizar todos los datos de mi consulta (select * from tabla). uso TadoQuery en delphi 7. que componente me sugieren? y si me pueden apoyar con un poco de codigo muchas gracias.
Por favor, lee nuestra guía de estilo, gracias
Responder Con Cita
  #9  
Antiguo 21-12-2017
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 26
Caral Va por buen camino
Hola
Lo que no veo es que bd usas ?
Saludos
__________________
Siempre Novato
Responder Con Cita
  #10  
Antiguo 21-12-2017
LuisHatake LuisHatake is offline
Miembro
NULL
 
Registrado: oct 2017
Posts: 14
Poder: 0
LuisHatake Va por buen camino
Mostrar Datos en DBGrid

hola chicos como les comento lo que quiero hacer es mostrar todos los datos de una tabla en un dbgrid.
lo primero que tengo es un TADOConnection, despues tengo un TADOQuery ("qry6") asociado en su atributo de conexion al TADOConnection, despues tengo un TDataSetProvider el cual esta asociado al query en su propiedad dataset, depues tengo otro componente TClientDataSet el cual se encuentra asociado en su propiedad ProviderName al TDataSetProvider, y al final tengo un TDataSource que esta asociado en su ppropiedad DataSet al TClientDataSet. tambien tengo un boton en el cual al dar click se ejecuta el siguiente codigo:

Código Delphi [-]
procedure Tfrm1.btn1Click(Sender: TObject);
begin
  qry6.SQL.Clear;
  qry6.SQL.add('select idarticulo from articulo');
  qry6.Open;
  Buscar(edt1.Text);
end
;

//esto es lo que tiene el metodo buscar:
Código Delphi [-]
procedure Tfrm1.Buscar(idarticulo : string);
begin
  ds2.close;
  ds2.params.paramByName('idarticulo').asString := idarticulo;
  ds2.open;
end;

ds2 es el nombre del TClientDataSet.
en el codigo tiene idarticulo por que de esa forma almenos me muestra la columna de los id pero lo que quiero es ver todas las columnas de esa tabla y cuando pongo el asterisco o cualquier otro nombre de otra columna me marca el siguiente error: 'access violation at 0x05f9....: read of address'. gracias!!
Responder Con Cita
  #11  
Antiguo 23-12-2017
LuisHatake LuisHatake is offline
Miembro
NULL
 
Registrado: oct 2017
Posts: 14
Poder: 0
LuisHatake Va por buen camino
Post Error al ejecuar select en adoquery

Cita:
Empezado por Caral Ver Mensaje
Hola
Lo que no veo es que bd usas ?
Saludos
Hola Caral, les escribo para pedir ayuda pues pasa algo con mi programa. Lo que pasa es que no puedo realizar una consulta select con mas de dos campos. todo el codigo a continuacion lo tengo en el onclick de un boton. Si ejecuto la linea que esta comentada funciona perfectamente. strngrd1 es un TStringGrid. Mi base de datos esta en sql Workbench y utilizo los componentes TADOQuery. Gracias!

Código Delphi [-]
procedure TForm8.btn1Click(Sender: TObject);
var
lb, contador, i : Integer;
campo, campo2 : TField;
nombreCampo : string;
nombreCampo2 : string;
begin

  qryFinal.Close;
  qryFinal.SQL.Clear;
  qryFinal.SQL.Add('SELECT idarticulo, categoria');
  //qryFinal.SQL.Add('SELECT idarticulo');
  qryFinal.SQL.Add('  FROM articulo');
  qryFinal.SQL.Add('ORDER BY idarticulo');
  qryFinal.Open;
  contador:=1;
  while not qryFinal.Eof do
  begin
    for i:=0 to qryFinal.FieldCount -1 do
    begin
      nombreCampo:= qryFinal.Fields[i].FieldName;
      nombreCampo2:= qryFinal.Fields[i].FieldName;
      campo:=qryFinal.FieldByName(nombreCampo);
      campo2:=qryFinal.FieldByName(nombreCampo2);
      strngrd1.Rows[contador][i]:=campo.AsString;
      strngrd1.Rows[contador+1][i]:=campo2.AsString;
    end;
    inc(contador);
    qryFinal.Next;
  end;
end;
Responder Con Cita
  #12  
Antiguo 23-12-2017
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 26
Caral Va por buen camino
Hola
No entiendo muy bien lo que estas haciendo


nombreCampo:= qryFinal.Fields[i].FieldName;
nombreCampo2:= qryFinal.Fields[i].FieldName
Donde se diferencia en nombrecampo 1 y 2 ?
Me parece que por eso solo ve el primer campo
Saludos
__________________
Siempre Novato
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


La franja horaria es GMT +2. Ahora son las 00:45:07.


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