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.