Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-04-2005
buffygcs buffygcs is offline
Registrado
 
Registrado: abr 2005
Posts: 9
Poder: 0
buffygcs Va por buen camino
Question ayuda con adoquery

Hola tengo un problema, estoy trabajando con una base de datos en sqlserver y antes de insertar un dato tengo que verificar en la tabla si existe o no para poder insertar
with adoquery1 do
begin
close;
sql.Clear;
sql.Add('select sistema_estudios from setstlm
where sistema_estudios= :valorclave');
Parameters.ParamByName('valorclave').Value:= clave.Text;
ExecSQL;
end;

el problema es que no se como recuperar el resultado, es decir como se si hubo registro o no.

Bueno espero que me puedan ayudar
Responder Con Cita
  #2  
Antiguo 07-04-2005
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
Modifica el SQL y lanza un Select Count y así sabras si hay resultados o no, bastará con saber que te devuelva registros.

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
  #3  
Antiguo 07-04-2005
buffygcs buffygcs is offline
Registrado
 
Registrado: abr 2005
Posts: 9
Poder: 0
buffygcs Va por buen camino
Question yo de nuevo

hola gracias por tu ayuda pero ahora quiero obtener el resultado y asignarlo a una variable entera como le hago
Responder Con Cita
  #4  
Antiguo 07-04-2005
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
Código Delphi [-]
 procedure TForm1.Button1Click(Sender: TObject);
 begin
 edit1.Text:=Query1.Fields[0].AsString;
 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
  #5  
Antiguo 07-04-2005
MasterXP MasterXP is offline
Miembro
 
Registrado: ene 2005
Posts: 193
Poder: 20
MasterXP Va por buen camino
yo uso MySQL, ejemplo en MySQL:

Código Delphi [-]
  With Query1 DO
  Begin
  Close;
  SQL.Clear;
  SQL.Add('Select (Count(Distinct(TuCampo))) From TuTabla;')
  Open;
  Existe:=Fields[0].AsInteger;
  Close;
 end;

salu2.
Responder Con Cita
  #6  
Antiguo 07-04-2005
MasterXP MasterXP is offline
Miembro
 
Registrado: ene 2005
Posts: 193
Poder: 20
MasterXP Va por buen camino
Ahh, tambien he creado una funcion, que et sirve para saber si existe, y cual es el ultimo numero de un campo numerico en la DB.

Código Delphi [-]
 Function BancaNext(X:Integer):Integer;
 begin
 With Datamodule1 DO
 Begin
 ADOQueryGeneral.Close;
 ADOQueryGeneral.SQL.Clear;
 ADOQueryGeneral.SQL.Add('SELECT BANCA FROM empleados_Datos');
 ADOQueryGeneral.Open;
 ADOQueryGeneral.First;
 X:=ADOQueryGeneral.Fields[0].AsInteger;
 WHILE X=ADOQueryGeneral.Fields[0].AsInteger do
 begin
 X:=X+1;
 ADOQuerygeneral.Next;
 End;
 Result:=X;
 end;
 end;

espero te sirva, un salu2.
Responder Con Cita
  #7  
Antiguo 18-04-2005
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.409
Poder: 22
fjcg02 Va camino a la fama
Me parece que matas moscas a cañonazos.

si haces

Código:
select max(banca) from empleados_datos group by banca
ya sabes el valor más alto de ese campo sin recorrerlos todos. Sólo tienes que sumarle uno para saber el siguiente número, siempre y cuando no se den dos registros de alta a la vez.

En el ejemplo que pones, si la tabla tiene muchos registros, perderás eficacia, ya que recorres todos los registros de la tabla.

Aunque tu tabla tenga pocos registros, no se debe perder la elegancia.

Espero que te sea de ayuda.

Un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
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 08:00:28.


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