Ver Mensaje Individual
  #20  
Antiguo 31-05-2010
NetTrodon NetTrodon is offline
Registrado
 
Registrado: may 2010
Posts: 3
Reputación: 0
NetTrodon Va por buen camino
El único ejemplo que tengo es el como administrar los usuarios con el Services API de Firebird, que es el proyecto incluido en el port de del API versión 2.0; pero según lo que tengo entendio, usar cadenas como buffers, ya no es muy válido en Delphi 2007 y superior.

Si tienes a la mano Interbase 6: API Guide puedes usar los ejemplos, pero traduciéndolos a pascal, es lo que hago actualmente.

Actualmente uso punteros y GetMem-FreeMem en Delphi 2010 para desarrollar el driver DBX4, pero tampoco es muy agradable el hacer casts de un puntero a otro para respetar la aritmética, por ejemplo, para obtener el tamaño del buffer uso:

Código Delphi [-]
dbp_length := PByte(dbp_buffer_current) - PByte(dbp_buffer);

para incrementar el puntero:

Código Delphi [-]
Inc(PByte(dbp_buffer_current));

para escribir un byte en el puentro del byte actual:

Código Delphi [-]
PByte(dbp_buffer_current)^ := isc_dpb_version1;

y para escribir cadenas:

Código Delphi [-]
Move(tmp_string, dbp_buffer_current, tmp_string_length);

Estoy revisando mis códigos para usar en lugar de GetMem-FreeMem los arreglos de bytes (TBytes), que son más amigables que los punteros.

Pero si tienes prisa, te adjunto el como realizo la conexión actualmente, usando punteros y GetMem-FreeMem; pueden servirte de mala guia por el momento.
Archivos Adjuntos
Tipo de Archivo: zip ejemplo.zip (715 Bytes, 10 visitas)
Responder Con Cita