Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-01-2008
LENOCB LENOCB is offline
Miembro
 
Registrado: dic 2008
Ubicación: Argentina
Posts: 54
Poder: 17
LENOCB Va por buen camino
Cual es la Mejor forma de Agregar,Modificar y Eliminar en ADO ?

No se si hay una única forma, porque esta va a hacer la 1º vez que trabaje con bd, jeje, y preguntaba nomás.- por codigo se puede ??.-
saludos
Responder Con Cita
  #2  
Antiguo 06-01-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Por supuesto que se puede, hacer todo lo que quieres con ADO.
Y claro que se puede por codigo, usando sql.
Saludos
Responder Con Cita
  #3  
Antiguo 06-01-2008
LENOCB LENOCB is offline
Miembro
 
Registrado: dic 2008
Ubicación: Argentina
Posts: 54
Poder: 17
LENOCB Va por buen camino
Hola, tengo estas cosas, en form tengo 2 edit, en uno va el nombre y en el otro un numero;
Código Delphi [-]agregar:='Insert Into TGrupos (Nombre,Cod_G) Values ('''+Edit1.Text+''', '''StrToInt(Edit2.Text)'')';
FormGrupos.ADOQuery1.SQL.Add(agregar);

y me tira error en el parte StrToInt(Edit2.Text)'')';

que puede ser ?
Responder Con Cita
  #4  
Antiguo 06-01-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por LENOCB Ver Mensaje
No se si hay una única forma, porque esta va a hacer la 1º vez que trabaje con bd, jeje, y preguntaba nomás.- por codigo se puede ??.-
saludos
Hola LENOCB, sería oportuno que profundices y aportes mayores detalles sobre tus dudas...

No se para donde apunta tu pregunta, por lo que la respuesta tampoco sabría decirla.

Si te describes mejor, puede que te aporte una respuesta más certera.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #5  
Antiguo 06-01-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Bueno, a por otra.
Código Delphi [-]
FormGrupos.ADOQuery1.SQL.Text:= 'Insert Into TGrupos (Nombre, Cod_G) Values (:Nombre, :Codigo)';
FormGrupos.ADOQuery1.Parameters.Parambyname('Nombre').Value:= Edit1.Text;
FormGrupos.ADOQuery1.Parameters.Parambyname('Codigo').Value:= StrToInt(Edit2.Text);
FormGrupos.ADOQuery1.ExecSQL;
El uso de parametros puede ser un poco mas de trabajo inicial, al final ayudara mucho, te lo aconsejo.
Saludos
Responder Con Cita
  #6  
Antiguo 06-01-2008
LENOCB LENOCB is offline
Miembro
 
Registrado: dic 2008
Ubicación: Argentina
Posts: 54
Poder: 17
LENOCB Va por buen camino
que genia, una vez muchas gracias !!!!
Responder Con Cita
  #7  
Antiguo 06-01-2008
LENOCB LENOCB is offline
Miembro
 
Registrado: dic 2008
Ubicación: Argentina
Posts: 54
Poder: 17
LENOCB Va por buen camino
Hola, ahora antes de agragar tendria que fijarme si ya no existe ese grupo, como se busca con el locate ??
Responder Con Cita
  #8  
Antiguo 06-01-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
No crees que cada vez pones menos explicaciones?.
Me parece que es importante toda la informacion que se de, el codigo, la idea que se tenga, etc.
Si eres tan escueto en tus preguntas, dificilmente alguien te podra dar alguna solucion.
Por mi parte, necesito mas informacion.
Que es lo que tienes?
Que quieres hacer?
En que parte del programa?
Saludos
Responder Con Cita
  #9  
Antiguo 06-01-2008
LENOCB LENOCB is offline
Miembro
 
Registrado: dic 2008
Ubicación: Argentina
Posts: 54
Poder: 17
LENOCB Va por buen camino
sisi, lo que pasa es que voy a mil !!! jeje, bueno, viste el codigo de agregar ?? ese anda de maravillas, ahora lo que quiero antes de agregar, que busque primero si ya existe ese nombre .-
Responder Con Cita
  #10  
Antiguo 06-01-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Código Delphi [-]
FormGrupos.ADOQuery1.Active := False;
FormGrupos.ADOQuery1.SQL.Text := 'Select Nombre From TGrupos WHERE Nombre = :Nombre';
FormGrupos.ADOQuery1.Parameters.Parambyname('Nombre').Value:= Edit1.Text;
FormGrupos.ADOQuery1.Active := True;
If Edit1.Text = FormGrupos.ADOQuery1.Fields[0].Value then
MessageDlg('El Nombre ya Existe',mtError,[mbOK],0)
else
FormGrupos.ADOQuery1.Active := False;
FormGrupos.ADOQuery1.SQL.Text:= 'Insert Into TGrupos (Nombre, Cod_G) Values (:Nombre, :Codigo)';
FormGrupos.ADOQuery1.Parameters.Parambyname('Nombre').Value:= Edit1.Text;
FormGrupos.ADOQuery1.Parameters.Parambyname('Codigo').Value:= StrToInt(Edit2.Text);
FormGrupos.ADOQuery1.ExecSQL;
El locate lo uso de vez en cuando tambien, pero en otras consultas.
Saludos
Responder Con Cita
  #11  
Antiguo 06-01-2008
LENOCB LENOCB is offline
Miembro
 
Registrado: dic 2008
Ubicación: Argentina
Posts: 54
Poder: 17
LENOCB Va por buen camino
muchas gracias Caral, y cuando es conveniente usar el Locate ?
Responder Con Cita
  #12  
Antiguo 06-01-2008
LENOCB LENOCB is offline
Miembro
 
Registrado: dic 2008
Ubicación: Argentina
Posts: 54
Poder: 17
LENOCB Va por buen camino
Hola, de nuevo, ahora me salta un error ,acá pongo el codigo para que vean:

Código Delphi [-]procedure TFormGrupos.BitBtn1Click(Sender: TObject); //Agrega un Grupo sino está en la Tabla TGrupos.
Var agregar:String;
CO:Integer;
begin //Primero Buscar el Registro para ver si está . Y verifica tambien el codigo
FormGrupos.ADOQuery1.Active := False;
FormGrupos.ADOQuery1.SQL.Text := 'Select Nombre From TGrupos WHERE Nombre = :Nombre';
FormGrupos.ADOQuery1.Parameters.Parambyname('Nombre').Value:= Edit1.Text;
FormGrupos.ADOQuery1.Active := True;
If Edit1.Text = FormGrupos.ADOQuery1.Fields[0].Value then begin MessageDlg('El Grupo : '+Edit1.Text+' ya Existe ',mtError,[mbOK],0);
Edit1.text:='';
Edit1.SetFocus;
end else begin //Ahora me fijo el Código si ya existe.
//FormGrupos.ADOQuery1.SQL.Clear;
FormGrupos.ADOQuery1.Active := False;
FormGrupos.ADOQuery1.SQL.Text:= 'Select Cod_G TGrupos From TGrupos Where Cod_G = :Cod_G';
FormGrupos.ADOQuery1.Parameters.Parambyname('Cod_G').Value:= StrToInt(Edit2.Text);
FormGrupos.ADOQuery1.Active:=true;
If (StrToInt(Edit2.Text)) = FormGrupos.ADOQuery1.Fields[0].Value Then begin MessageDlg('El Código: '+Edit2.Text+', ya existe', mtError,[mbOk],0); Edit2.Text:='';
Edit2.SetFocus;
end else //Esta todo bien entonces agrego.
begin FormGrupos.ADOQuery1.Active := False; FormGrupos.ADOQuery1.SQL.Text:= 'Insert Into TGrupos (Nombre, Cod_G) Values (:Nombre, :Codigo)';
FormGrupos.ADOQuery1.Parameters.Parambyname('Nombre').Value:= Edit1.Text;
FormGrupos.ADOQuery1.Parameters.Parambyname('Codigo').Value:= StrToInt(Edit2.Text);
FormGrupos.ADOQuery1.ExecSQL;
end;
end;


y lo que esta en verde ,me tira error :"Error de sintaxis (falta operador) en la expresion de cunsulta Cod_G TGrupos"
Responder Con Cita
  #13  
Antiguo 06-01-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
No veo ningun error de sintaxis, puede ser que que campo no sea como lo planteas.
Prueba asi:
Código Delphi [-]
FormGrupos.ADOQuery1.SQL.Text:= 'Select Cod_G TGrupos From TGrupos Where Cod_G = :Cod';
FormGrupos.ADOQuery1.Parameters.Parambyname('Cod').Value:= Edit2.Text;
Saludos
Responder Con Cita
  #14  
Antiguo 06-01-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Cuando hay alguna duda de lo que envia o como lo envia la consulta es bueno generar un mensaje, asi veras exactamente donde esta el error.
Algo asi:
Código Delphi [-]
FormGrupos.ADOQuery1.SQL.Text:= 'Select Cod_G TGrupos From TGrupos Where Cod_G = :Cod';
FormGrupos.ADOQuery1.Parameters.Parambyname('Cod').Value:= Edit2.Text;
Showmessage(FormGrupos.ADOQuery1.SQL.Text);
Antes de abrir o activar el query.
Si la consulta esta mal hecha o no coinciden los datos, los veras facilmente.
Saludos
Responder Con Cita
  #15  
Antiguo 06-01-2008
LENOCB LENOCB is offline
Miembro
 
Registrado: dic 2008
Ubicación: Argentina
Posts: 54
Poder: 17
LENOCB Va por buen camino
ya solucione el error, esta poniendo Select Cod_G TGrupos (cuando TGrupos no es un campo de la tabla , sino la tabla misma) jeje, ahora me sale otro error: " No se han especificados algunos valores para alguno de los parametros solicitados" , el error lo tira en el mismo lugar donde lo tiró antes
Responder Con Cita
  #16  
Antiguo 06-01-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
La logica del mensaje es:
No has puesto nada en el edit2.??
Parametros???????
Cuales tienes, ya los ves????, as especificado los parametros???.
La computación (vista desde el punto de vista de este Novato) es logica.
Hay cosas amigo en las que no se pude ayudar, hay que buscarlas en el programa, tratar de analizarlas y buscarle la solucion.
Siento que si sigo haciéndote la tarea no te estoy haciendo ningún favor, no vas a aprender la lógica de la programación.
No digo que no te quiera ayudar, digo que tienes que caminar un poco solo, asi vas a aprender mas.
Busca el problema, la lógica del mismo y si después de eso no puedes solucionarlo entonces llama a un exorcista. o bien este Novato tratara de ver como te ayuda.
Saludos
Responder Con Cita
  #17  
Antiguo 06-01-2008
LENOCB LENOCB is offline
Miembro
 
Registrado: dic 2008
Ubicación: Argentina
Posts: 54
Poder: 17
LENOCB Va por buen camino
no se, es mas puse un edit mas para poner ahí lo que me devolvia la consulta y me tira el mismo error, y el edit2 tiene el numero (el cod) que uso para hacer la consulta, hasta intenté hacer otro adoquery2, para que no sea al mismo adoquery1, y me sigue tirando el mismo error
Responder Con Cita
  #18  
Antiguo 06-01-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Codigo amigo, codigo.
As cambiado algo?, donde?, que?.
Saludos
Responder Con Cita
  #19  
Antiguo 06-01-2008
LENOCB LENOCB is offline
Miembro
 
Registrado: dic 2008
Ubicación: Argentina
Posts: 54
Poder: 17
LENOCB Va por buen camino
Código Delphi [-]procedure TFormGrupos.Edit1Exit(Sender: TObject);
begin //Si el Campo del Nombre no está completo salta un error.
If (Edit1.Text='')then begin MessageDlg('Este Campo debe completarse ',mtError,[mbOk],0);
Edit1.SetFocus;
end;
end;

procedure TFormGrupos.BitBtn1Click(Sender: TObject); //Agrega un Grupo sino está en la Tabla TGrupos.
Var agregar:String;
CO:Integer;
begin //Primero Buscar el Registro para ver si está . Y verifica tambien el codigo
FormGrupos.ADOQuery1.Active := False;
FormGrupos.ADOQuery1.SQL.Text := 'Select Nombre From TGrupos WHERE Nombre = :Nombre';
FormGrupos.ADOQuery1.Parameters.Parambyname('Nombre').Value:= Edit1.Text;
FormGrupos.ADOQuery1.Active := True;
If Edit1.Text = FormGrupos.ADOQuery1.Fields[0].Value then begin MessageDlg('El Grupo : '+Edit1.Text+' ya Existe ',mtError,[mbOK],0);
Edit1.text:='';
Edit1.SetFocus;
end else begin //Ahora me fijo el Código si ya existe.
//FormGrupos.ADOQuery1.SQL.Clear;
//FormGrupos.ADOQuery1.Active := False;
FormGrupos.ADOQuery1.SQL.Text:= 'Select Cod_G From TGrupos Where Cod_G = :Cod';
FormGrupos.ADOQuery1.Parameters.Parambyname('Cod').Value:=StrToInt(FormGrupos.Edit2.Text);
FormGrupos.ADOQuery1.Active:=true;
If StrToInt(Edit2.text) = FormGrupos.ADOQuery1.Fields[0].Value Then begin MessageDlg('El Código: '+Edit2.Text+', ya existe', mtError,[mbOk],0);
Edit2.Text:='';
Edit2.SetFocus;
end else //Esta todo bien entonces agrego.
begin FormGrupos.ADOQuery1.Active := False; FormGrupos.ADOQuery1.SQL.Text:= 'Insert Into TGrupos (Nombre, Cod_G) Values (:Nombre, :Codigo)';
FormGrupos.ADOQuery1.Parameters.Parambyname('Nombre').Value:= Edit1.Text;
FormGrupos.ADOQuery1.Parameters.Parambyname('Codigo').Value:= StrToInt(Edit2.Text);
FormGrupos.ADOQuery1.ExecSQL;
end;
end;


he probado mandandole el numero directo es decir :
FormGrupos.ADOQuery1.Parameters.Parambyname('Cod').Value:= 4
por ejemplo y salta el mismo error
Responder Con Cita
  #20  
Antiguo 06-01-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
No veo el error
Por que esto:
Código Delphi [-]
StrToInt(FormGrupos.Edit2.Text);
Cual es el form FormGrupos??
Donde esta el edit2 ?? esta en el mismo form?
Pusiste un mensaje donde te indique para saber que datos envia?
Saludos
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
Cuál es la Mejor forma de Eliminar Conexiones Clientes de un Server Indy R_Richards Internet 4 22-07-2010 15:11:09
Eliminar Codigo Cual es la mejor Forma ? sierraja Varios 1 12-04-2007 00:41:00
cual es la mejor forma de logearse a mysql... Arturo MySQL 1 11-10-2006 17:45:01
Cual es la mejor forma de coneccion con sql server 2000 alexander66 MS SQL Server 3 21-07-2006 09:59:58
cual es la mejor forma ? martita Varios 14 07-07-2005 19:35:55


La franja horaria es GMT +2. Ahora son las 15:41:49.


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