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

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 25-04-2007
Nasca Nasca is offline
Miembro
 
Registrado: abr 2007
Ubicación: Almería (España)
Posts: 249
Poder: 20
Nasca Va por buen camino
Lo puedes hacer a través del componente de conexión, yo lo tengo montado a través de una tabla donde tengo las distintas sentencias y luego voy ejecutando las mismas recursivamente con algo como esta sentencia:

Código Delphi [-]

function TfCriteriumACm.EjecutarSentencia: Integer;
var
 TD: TTransactionDesc;
 resultado : Integer;
begin
if not(sqlcdatos.Connected) then
  begin
   Showmessage('La conexióa la base de datos no está abierta!!!');
   Result := -100;
   Exit;
  end;
if not(cdsUpdateSQL.Active) or (cdsUpdateSQLSENTENCIA_SQL.IsNull) then
  begin
   Showmessage('La tabla de sentencias SQL de actualización no está abierta o no hay sentencia que ejecutar!!!');
   Result := -100;
   Exit;
  end;
if (cdsUpdateSQLTIPO.Value = 'stUnknow') or (cdsUpdateSQLTIPO.Value = '') then
   begin
    cdsUpdateSQL.Edit;
    cdsUpdateSQLRESULTADO.Value := -1;
    cdsUpdateSQLRESULTADO_TEXTO.Value := 'Sentencia desconocida, no ejecutada!';
    Result := -1;
    Exit;
   end;
if (cdsUpdateSQLTIPO.Value = 'stSetTerm') or (cdsUpdateSQLTIPO.Value = 'stSelect')
    or (cdsUpdateSQLTIPO.Value = 'stCreateDatabase') then
   begin
    cdsUpdateSQL.Edit;
    cdsUpdateSQLRESULTADO.Value := -1;
    cdsUpdateSQLRESULTADO_TEXTO.Value := 'Sentencia no ejecutable';
    Result := -1;
    Exit;
   end;

TD.TransactionID := cdsUpdateSQLORDEN.Value;
TD.IsolationLevel := xilREADCOMMITTED;
sqlcdatos.StartTransaction(TD);
try
 resultado := sqlcdatos.ExecuteDirect(cdsUpdateSQLSENTENCIA_SQL.AsString);
 sqlcdatos.Commit(TD);
 cdsUpdateSQL.Edit;
 cdsUpdateSQLRESULTADO.Value := resultado;
 cdsUpdateSQLRESULTADO_TEXTO.Value := 'Sentencia ejecutada sin problemas';
 Result := resultado;
except
  On E: Exception Do
     begin
       sqlcdatos.Rollback(TD);
       cdsUpdateSQL.Edit;
       cdsUpdateSQLRESULTADO.Value := -13;
       cdsUpdateSQLRESULTADO_TEXTO.Value := ('Error: '+E.Message);
       Result := -13;
     end;
end;

Parte de la lógica es por guardar y devolver un valor que me permita detener el script sql, pero si entresacas lo importante (el final) puedes apañarte.
Responder Con Cita
 


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
Depuración de Script lucasarts_18 PHP 0 16-04-2007 15:47:36
Cuantos <Script></Script> deben haber en un <Body>? Deiv HTML, Javascript y otros 9 07-12-2006 01:27:50
Script De Windows ronson Varios 1 25-07-2005 17:19:38
Script Bd En Instalacion ?? marceloalegre Varios 2 23-06-2005 16:19:04
Script de fotos en PHP SaLvaGe PHP 0 20-05-2005 18:46:52


La franja horaria es GMT +2. Ahora son las 11:32:52.


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