Ver Mensaje Individual
  #1  
Antiguo 22-09-2004
paren paren is offline
Miembro
 
Registrado: jul 2004
Ubicación: Tijuana, B. C. Mexico
Posts: 18
Reputación: 0
paren Va por buen camino
Question IBX, DLL, Actualizar Dato

Delphi 5.0
Win98 SE
Interbase

Cree una funcion en un DLL para que actualice un dato de una tabla en especifico, regresa verdadera si este fue modificado, para esto agregue un TDataModule para poner ahi el componente TIBDatabase, TIBTransaction, TIBQuery.

El problemas es que cuando uso el DLL en la aplicación que deseo, me regresa la función como verdadera, sin embargo no modifica el dato.

Probe los mismo con una Tform en vez del TDataModule, y con este si funciona, es decir, me regresa la funcion como verdadera y ademas actualiza el campo de la tabla.

Cual es el problema???

Código Delphi [-]
  
  library ActualizaW32;
  
  uses
    SysUtils,
    Classes,
    UdtamdlDatos in 'UdtamdlDatos.pas' {dtamdlDatos: TDataModule};
  
  {$R *.RES}
  
  Function ActualizaTabla(Id_Buscar, Id_Campo, Campo_Valor : PChar) : Boolean; StdCall;
  Begin
   dtamdlDatos := TdtamdlDatos.Create(Nil);
   With dtamdlDatos Do
   Begin
    Try
     ibqryContactos.Close;
     ibqryContactos.SQL.Clear;
     ibqryContactos.SQL.Add('Update Cliente');
     ibqryContactos.SQL.Add('Set ' + Id_Campo + ' = :PValor');
     ibqryContactos.SQL.Add('Where Id_Empresa = ' + QuotedStr(Id_Buscar));
     ibqryContactos.Params[0].AsString := StrPas(Campo_Valor);
     ibqryContactos.ExecSQL;
     Result := True;
    Except
     Result := False;
    End;
   End;
  End;
  
  Exports
   ActualizaTabla;
   
  begin
  end.

Código de la aplicacion
Código Delphi [-]
   If ActualizaTabla(PChar(Edit1.Text), PChar('email'), PChar(DBEdit15.Text)) Then
    ShowMessage('True')
   Else
    ShowMessage('False');

Espero haberme explicado
Gracias por su atención

Última edición por paren fecha: 22-09-2004 a las 00:14:45.
Responder Con Cita