Ver Mensaje Individual
  #3  
Antiguo 20-11-2003
xgerard xgerard is offline
Miembro
 
Registrado: nov 2003
Ubicación: Veracruz, Mexico
Posts: 10
Reputación: 0
xgerard Va por buen camino
asi tengo declarado dentro del 1er dll :

procedure alta(nom, mae : PChar; ed, grad : integer);register; external 'conexion.dll';

/////esta es la funcion donde hago el llamado ...

function valida_alumno(nombre, maestra : string; edad, grado : integer ): integer; stdcall;
begin
if (nombre = '') then
Result := 1
else
if (edad<5 )or(edad >12) then
Result:=2
else
if(grado<1) or (grado>6) then
Result :=3
else
if (maestra = '') then
Result := 4
else
begin
alta(PChar(nombre),PChar(maestra),edad,grado);
Result := 0;
{llamar al dll de conexion a la BD}
end
end;

///este es el cuerpo de la funcion en el 2o dll

procedure alta(nombre, maestra : PChar; edad, grado : integer); register;
var
database : TADOConnection;
query: TADOQuery;
begin
database.Connected := false;
database.ConnectionString :='Provider=MSDASQL.1;Password=colegio;Persist Security Info=True;User ID=colegio;Data Source=myodbc3-test';
database.Connected := true;
query.Connection := database;
query.Close ;
query.SQL.Add ('insert into alumno values ('''+nombre+''','+inttostr(edad)+','+inttostr(grado)+','''+maestra+''')');
try
query.ExecSQL ;
except on E: Exception do
showmessage ('error con la memoria :S')
end;
database.Connected := false;
end;

//// anteriormente los PChar los tenia como string, porque creia que ese era el error, pero no fue asi
Responder Con Cita