Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Seccion PocketStudio (PalmOS) Cuarta Entrega (https://www.clubdelphi.com/foros/showthread.php?t=35867)

fredo 25-09-2006 15:50:40

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?:confused:

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....:)

fredo 25-09-2006 15:59:57

Finalizando
 
por ultimo tenemos que registrar la aplicacion en elHotSync para que la llame en el momento de sincronizar... para ello no es necesario quiebrarce la cabeza, solo hay que abrir la la aplicacion install en la carpeta install que se nombro anteriormente....

en la seccion const

Código Delphi [-]
const
  Creator = 'D043';
  FileName = 'Nombre_carga_datos.exe';
  Install = 'Install';
  Uninstall = 'Uninstall';


La constante FileName debe llevar el nombre del programa que carga los datos, luego darle un build, y por ultimo copiar el ejecutable a donde esta el otro ejecutable creado anteriormente, correr, y por ultimo precionar el boton install, esto registrara la aplicacion. :eek:

y listo con ello leemos los datos registrados en la palm.

si hemos utilizado el showmessage(); del ejemplo anterior veremos uno por cada registro guardado en la tabla.....

fredo 29-09-2006 18:27:24

Un aviso
 
ya enconre como sicronizar al revez...:D si hay algun interesado que me lo pida y se lo mando....

Saludos.


La franja horaria es GMT +2. Ahora son las 03:03:42.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi