Club Delphi  
    Paypal   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 Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-03-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola UREÑA
Asi se ve mejor:
Código Delphi [-]
try
frm_DataModule.trans_commit.StartTransaction;
frm_DataModule.qry_usuarios.Close;
frm_DataModule.qry_usuarios.SQL.Clear;
frm_DataModule.qry_usuarios.SQL.Text 'INSERT INTO USUARIOS (NOMBRE, APELLIDOP_US) ' +
                                    'VALUES ('+QuotedStr(Edit1.Text)+','+QuotedStr(Edit2.Text)+')';
frm_DataModule.qry_usuarios.ExecSQL;
frm_DataModule.trans_commit.Commit;
Except
frm_DataModule.trans_commit.Rollback;
end;
Close ();
Saludos
Responder Con Cita
  #2  
Antiguo 26-03-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
Si estas usando Firebird, es mejor que instales los MDOLIB, ya que son y serán totalmente compatible con Firebird.

Después usas un TMDODataset, que es un componente con 4 sqls:
- select
- insert
- update
- delete

En diseño estableces esas cuatro propiedades (especificando la tabla de firebirde que se va a modificar y los campos actualizables) con unas sqls que el propio MDODataset te propone, y así podrás hacer cada una de las operaciones como si de un TTable se tratara (más o menos).

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #3  
Antiguo 26-03-2007
Avatar de RONPABLO
[RONPABLO] RONPABLO is offline
Miembro Premium
 
Registrado: oct 2004
Posts: 1.514
Poder: 23
RONPABLO Va por buen camino
Cita:
lo mejor es utilizar un query para cada operacion??? para insertar, eliminar y editar??
como recomendación no uses el query.sql.add()... mejor crea para cada tabla un xxDataSet (como te recomendó Lepe), donde desde el diseño ya tenga los querys de Insert, Delte, Update y select.

Tambien usa parámetros, algo asi como esto:


Código SQL [-]
select * from tabla where id = :vparametroId 
inserte into tabla (id, nombre) values(:vparametroId, :vparametroNombre)
update tabla set nombre = :vparametroNombre where id = :vparametroId
//los dos puntos indican que ese valor va a ser enviado por medio de un
// parametro, la forma de enviar parametros desde Delphi es asi:


Código Delphi [-]

modulo.query.close;
modulo.query.ParamByName('parametroId').asInteger = 1;
modulo.query.ParamByName('parametroNombre').asString = 'juan';
modulo.query.open;
Responder Con Cita
  #4  
Antiguo 27-03-2007
Avatar de UREÑA
UREÑA UREÑA is offline
Miembro
 
Registrado: feb 2007
Posts: 75
Poder: 20
UREÑA Va por buen camino
hola amigos buen dia

con la novedad!!!

por fin ya pude eliminar

Código SQL [-]
   //ELIMINA REGISTROS
  if frm_DataModule.qry_usuarios.RecordCount > 0 then
begin
    try
     frm_DataModule.trans_commit.StartTransaction;
     frm_DataModule.qry_usuarios_upd.Close;
     frm_DataModule.qry_usuarios_upd.SQL.Clear;
     //ShowMessage(frm_DataModule.qry_usuarios.fieldbyname('NOMBRE').AsString);
     frm_DataModule.qry_usuarios_upd.SQL.Add('DELETE FROM USUARIOS where NOMBRE ='+QuotedStr(frm_DataModule.qry_usuarios.fieldbyname('NOMBRE').AsString));
     frm_DataModule.qry_usuarios_upd.SQL.Text;
     frm_DataModule.qry_usuarios_upd.ExecSQL;
     frm_DataModule.trans_commit.Commit;
   Except
     frm_DataModule.trans_commit.Rollback;
     end;
     frm_DataModule.qry_usuarios.Close;
     frm_DataModule.qry_usuarios.Open;
end
else
ShowMessage('No hay nada para eliminar');

gracias a todos!! solo me falta validar

me esta gustando mucho esto de delphi
Responder Con Cita
  #5  
Antiguo 28-03-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
Un detalle, cambia la línea:
Código Delphi [-]
 if frm_DataModule.qry_usuarios.RecordCount > 0 then
por esta otra:
Código Delphi [-]
 if not frm_DataModule.qry_usuarios.isEmpty then

el RecordCount solo funciona en tablas de escritorio (paradox), es demasiado costoso para implementarlo en Firebird u otro sistema c/s.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #6  
Antiguo 28-03-2007
Avatar de ArdiIIa
[ArdiIIa] ArdiIIa is offline
Miembro Premium
 
Registrado: nov 2003
Ubicación: Valencia city
Posts: 1.481
Poder: 24
ArdiIIa Va por buen camino
Cita:
Empezado por UREÑA
frm_DataModule.qry_usuarios_upd.Close;
frm_DataModule.qry_usuarios.Close;
Creo que esas dos líneas, son superfluas....
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO
Responder Con Cita
  #7  
Antiguo 29-03-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
Ardilla no entiendo qué líneas dices:
Código Delphi [-]
frm_DataModule.qry_usuarios_upd.Close;
frm_DataModule.qry_usuarios.Close;
La primera es necesaria porque estamos cambiando el SQL de esa consulta.
La segunda línea... bueno... se trata de otra Consulta distinta... de la que no tenemos constancia sobre su SQL, por ello, no me atrevería a asegurar que sobran.

La que si es cierto que sobra es esta:
Código Delphi [-]
     frm_DataModule.qry_usuarios_upd.SQL.Text;

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #8  
Antiguo 29-03-2007
Avatar de ArdiIIa
[ArdiIIa] ArdiIIa is offline
Miembro Premium
 
Registrado: nov 2003
Ubicación: Valencia city
Posts: 1.481
Poder: 24
ArdiIIa Va por buen camino
Hola Lepe:

Hasta donde yo sé, cuando se modifica la propiedad SLQ de un Query, éste se cierra automáticamente, luego sería innecesario cerrarlo, dado que ya con el hecho de hacer un SQL.Clear, este se cierra.
En el segundo caso, si el Query depende de la transacción con la que se efectúa un Commit o un Rolback, nada mas hacer cualquiera de los dos pasos, el Query se cerrará de forma automática, por lo tanto, tampoco será preciso cerrarlo, de ahí es por lo que hago esa observación.

Claro está que estoy hablando de TQuery y sus derivados. En un post anterior citabas los componentes MDOLIB, los cuales desconozco, y en el caso de que en en este ejemplo sean los componentes utilizados, y estos tengan un comportamiento distinto al citado, mi observación no tendría cabida.
Así que si esto ultimo es cierto retiro mi observación. Ahora bien, si los componentes utilizados son TQuery o TIbQuery, creo que mi observación optimiza el código.

Saludos
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO
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
eliminar scrollbar en DBGRID cocke C++ Builder 2 25-11-2006 05:01:51
deshabilitar eliminar desde un dbgrid morfeo21 Varios 2 13-10-2005 06:53:47
eliminar elemento del dbgrid Torreblanca Varios 5 10-10-2005 14:36:22
eliminar opcion de eliminar en un dbgrid morfeo21 Varios 3 14-07-2005 17:05:32
Eliminar columna(DbGrid) en tiempo de ejecucion bestiux Conexión con bases de datos 5 08-06-2004 18:06:44


La franja horaria es GMT +2. Ahora son las 03:28:39.


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