Ver Mensaje Individual
  #1  
Antiguo 25-09-2006
Avatar de fredo
fredo fredo is offline
Miembro
 
Registrado: oct 2003
Ubicación: Chile, Valparaiso
Posts: 318
Reputación: 21
fredo Va por buen camino
Talking Seccion PocketStudio (PalmOS) Cuarta Entrega

bueno, la vez anterios quedamos en la manipulacion de los datos....

solo queda el rescate desde el pc.

el primer paso es crear una aplicacion que sea capaz de rescatar los datos...para ello debemos ubicar la carpeta "Conduit" que viene ubicada en la carpeta "C:\Archivos de programa\Winsoft\PocketStudio 2\Conduit", ahi encontraremos una carpeta que contiene 1ero la carpeta "COMDirect" y la mas importante de todas, en esta vienen las funciones y procedimientos necesarios para poder sincronizar nuestros datos con el PC., las otras 2 carpetas son ejemplos de como usar estas unidades...., sin embargo no es solo abrir y ejecutar los ejemplos.....

luego se debe hacer un programa para leer los datos desde la palm...., para ello hacemos una nueva aplicacion, y luego agregamos las 2 unidades que vienen en la carpeta "PDDirectLib.pas" y "PDStandardLib.pas", creamos una funcion para leer los campos:
Código Delphi [-]
function GetField(Value: array of Byte; Index: Integer): String;
var i: Integer;
begin
  Result := '';
  
  for i := 0 to Length(Value) - 1 do
    if Index = 0 then
    begin
      if Value[i] = 0 then
        Exit
      else
        Result := Result + Chr(Value[i])
    end    
    else if Value[i] = 0 then
      Dec(Index);
end;

luego en el evento OnCreate

Código Delphi [-]
procedure TFrm_Main.FormCreate(Sender: TObject);
var
  DatabaseQuery,DatabaseQuery_Choferes: IPDDatabaseQuery;
  RecordAdapter,RecordAdapter_Choferes: IPDRecordAdapter;
  i,errores,Categoria: Integer;
  UniqueId: OleVariant;
  Category: Integer;
  Attributes: ERecordAttributes;
  DbRecord: array of Byte;
  Campo1,Campo2:String ;
  
begin
  DatabaseQuery := CoPDDatabaseQuery.Create;
  RecordAdapter := DatabaseQuery.OpenRecordDatabase('DBEjemplos', 'PDDirect.PDRecordAdapter', eRead or eShowSecret) as IPDRecordAdapter;

  RecordAdapter.AddLogEntry('- Lellendo Base de Datos'#10, eText, True, True); // Esto se ecribe en el log de la palm
RecordAdapter.AddLogEntry('- Lellendo Base de Datos', eText, True, False); // esto se escribe en el log del PC

  DbRecord := nil;
  for i := 0 to RecordAdapter.RecordCount - 1 do
  begin
    DbRecord := RecordAdapter.ReadByIndex(i, UniqueId, Category, Attributes);
    with dm do
    Begin
         Try
         Campo1:=trim(GetField(DbRecord, 0));
         campo2:=trim(GetField(DbRecord, 1));
         
         showmessage(campo1+' '+campo2)          
    end;
  end;
  RecordAdapter.AddLogEntry('- Hecho, '+#10, eText, True, True); // escribe log en la palm
  RecordAdapter.AddLogEntry('- Hecho', eText, True, False);//escribe log en el PC

¿que falta ahora?

pues la aplicacion debe cerrarce automticamente al terminar, en el ejemplo anterior la aplicacion que registros se estan leyendo desde la palm atravez de un showmessage(); sin embargo es ahi donde se debe hacer alguna operacion con los registros, como cargarlos a una DB....
__________________
^_^

http://stna.cl
Responder Con Cita