Ver Mensaje Individual
  #8  
Antiguo 30-10-2006
Avatar de SpyO_O
SpyO_O SpyO_O is offline
Miembro
 
Registrado: may 2003
Ubicación: Argentina
Posts: 22
Reputación: 0
SpyO_O Va por buen camino
Bases de datos en pocket Studio

Hola: voy a darles una ayuda con respecto a pocket studio porque veo que se trabaron con el acceso a bases de datos: lo mejor que pueden hacer es escribir una unit como la siguiente:
Unit Multas;
uses PSL;

const

DBName = 'MultaDB'; //Nombre de la base de datos
DBType = Rsc('data'); // DatabaseType de la base de dotos


Const
MultaRN=0;
MultaObjeto=1;
MultaNombre=2;
MultaDireccion=3;
MultaFecha=4;
MultaInspector=5;
MultaObs=6;
MultaStatus=7;
var

FieldDefs: array [0..7] of TFieldDef =
(
(DataType: ftString), //MultaRegistroNumero
(DataType: ftString), //MultaObjeto
(DataType: ftString), //MultaNombre
(DataType: ftString), //MultaDireccion
(DataType: ftDate), //MultaFecha
(DataType: ftInt16), //MultaInspector
(DataType: ftString), //Multa Obs
(DataType: ftString) //Multa Status
);



DBMulta:TDatabase;




function Open : Boolean;
function Close: Boolean;
Implementation

function Open:Boolean;
begin
Result := PSDatabase.Open(DBMulta, DBName, dmModeReadWrite);
if not Result then
Result := PSDatabase.CreateDatabase(DBName, Creator, ClienteDBType);
if Result then
Result := PSDatabase.Open(DBMulta, DBName, dmModeReadWrite);
end;

// Configura la estructura del registro en la base de datos.
PSDatabase.SetFieldDefs(DBMulta, FieldDefs[0],
SizeOf(FieldDefs) div SizeOf(FieldDefs[0]));
end;



function Close : Boolean;
begin
Result := PSDatabase.Close(DBMulta);
end;


end.

Como veran no necesita de muchos comentarios, pues es mas que logico su funcionamiento, la unit PSL(pocket studio library ) es la que encapsula todo el codigo de la base de datos.

Luego para acceder a la base de datos basta con recorrerla con un while:
Procedure Loop;
var
Buffer: Array[0..30] of Char;
begin

Multas.Open;
PSDatabase.First(DBMulta);
while Not PSDatabase.EOF(DBMultaDetalle) do
begin
StrCopy(Buffer,PSdatabase.FieldStringPtr(DBMulta,MultaNombre));
ShowMessage(Buffer);
PsDatabase.Next(DBMultaDetalle);
end;
end;

Luego existen metodos mas vistosos para acceder a la base de datos, como las tablas , algo asi, como los DBGrid en delphi pero muy distinto de ellos.
Saludos
__________________
Q Onda?
Responder Con Cita