Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

 
 
Herramientas Buscar en Tema Desplegado
  #3  
Antiguo 06-08-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
El comportamiento que mencionas es raro porque, usualmente, el directorio de la aplicación tiene prioridad sobre cualquier otro directorio.

Como alternativa, lo único que se me ocurre es que coloques esta unidad en tu aplicación (pones la ruta adecuada en SQLite3DllLocation):

Código Delphi [-]
unit SqliteLoader;

interface

implementation

uses ZPlainSqlite3, ZPlainLoader;

const
  SQLite3DllLocation = 'c:\ruta\a\la\biblioteca\sqlite3.dll';

type
  {** Implements a loader for SQLite native library. }
  TZSQLiteNativeLibraryLoader = class(TZNativeLibraryLoader)
  public
    function Load: Boolean; override;
  end;

{ TZSQLiteNativeLibraryLoader }

function TZSQLiteNativeLibraryLoader.Load: Boolean;
begin
  Result := inherited Load;

{!}        @sqlite_open                   := GetAddress('sqlite3_open');
{!}        @sqlite_close                  := GetAddress('sqlite3_close');
{!}        @sqlite_column_count           := GetAddress('sqlite3_column_count');
{!}        @sqlite_column_bytes           := GetAddress('sqlite3_column_text');
{!}        @sqlite_column_name            := GetAddress('sqlite3_column_name');
{!}        @sqlite_column_decltype        := GetAddress('sqlite3_column_decltype');
{!}        @sqlite_exec                   := GetAddress('sqlite3_exec');
{!}        @sqlite_last_insert_rowid      := GetAddress('sqlite3_last_insert_rowid');
{!}        @sqlite_changes                := GetAddress('sqlite3_changes');
{!}        @sqlite_errmsg                 := GetAddress('sqlite3_errmsg');
{ ?-       @sqlite_last_statement_changes := GetAddress('sqlite3_last_statement_changes');}
{!}        @sqlite_interrupt              := GetAddress('sqlite3_interrupt');
{!}        @sqlite_complete               := GetAddress('sqlite3_complete');
{!}        @sqlite_busy_handler           := GetAddress('sqlite3_busy_handler');
{!}        @sqlite_busy_timeout           := GetAddress('sqlite3_busy_timeout');
{!}        @sqlite_get_table              := GetAddress('sqlite3_get_table');
{!}        @sqlite_free_table             := GetAddress('sqlite3_free_table');
{!}        @sqlite_freemem                := GetAddress('sqlite3_free');
{!}        @sqlite_libversion             := GetAddress('sqlite3_libversion');
{ ?-       @sqlite_libencoding            := GetAddress('sqlite3_libencoding');
{ ?-       @sqlite_create_function        := GetAddress('sqlite3_create_function');}
{ ?-       @sqlite_create_aggregate       := GetAddress('sqlite3_create_collation');}
{ ?-       @sqlite_function_type          := GetAddress('sqlite3_function_type');
{!}        @sqlite_set_result_string      := GetAddress('sqlite3_result_string');
{!}        @sqlite_set_result_int         := GetAddress('sqlite3_result_int');
{!}        @sqlite_set_result_double      := GetAddress('sqlite3_result_double');
{!}        @sqlite_set_result_error       := GetAddress('sqlite3_result_error');
{!}        @sqlite_user_data              := GetAddress('sqlite3_user_data');
{!}        @sqlite_aggregate_context      := GetAddress('sqlite3_aggregate_context');
{!}        @sqlite_aggregate_count        := GetAddress('sqlite3_aggregate_count');
{!}        @sqlite_set_authorizer         := GetAddress('sqlite3_set_authorizer');
{!}        @sqlite_trace                  := GetAddress('sqlite3_trace');
{!}        @sqlite_compile                := GetAddress('sqlite3_prepare');
{!}        @sqlite_step                   := GetAddress('sqlite3_step');
{!}        @sqlite_finalize               := GetAddress('sqlite3_finalize');
{!}        @sqlite_reset                  := GetAddress('sqlite3_reset');
{ ?-       @sqlite_bind                   := GetAddress('sqlite3_bind');}
{!}        @sqlite_progress_handler       := GetAddress('sqlite3_progress_handler');
{!}        @sqlite_commit_hook            := GetAddress('sqlite3_commit_hook');
{ ?-       @sqlite_open_encrypted         := GetAddress('sqlite3_open_encrypted');}
{!}        @sqlite_rekey                  := GetAddress('sqlite3_rekey');
{!}        @sqlite_key                    := GetAddress('sqlite3_key');
end;

initialization
  if Assigned(ZPlainSqlite3.LibraryLoader) then
    ZPlainSqlite3.LibraryLoader.Free;

  ZPlainSqlite3.LibraryLoader :=
    TZSQLiteNativeLibraryLoader.Create([SQLite3DllLocation]);
end.

Básicamente, esta unidad "copia" lo que hace la unidad ZPlainSqlite3 que es donde se carga la biblioteca de sqlite.

// Saludos
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Desactivar journal con ZeosBD y Sqlite3 fide_uci Conexión con bases de datos 1 21-05-2012 16:29:47
Ayuda con Insercion lentisima en SQLite3 fide_uci Conexión con bases de datos 4 19-01-2012 03:55:52
¿como compilar sqlite3.dll ? JXJ C++ Builder 2 07-12-2010 22:37:50
SQLite3 devuelve 01-01-1899 salvica SQL 3 03-02-2010 11:56:55
acceso a datos sqlite3 lazarus anubis Lazarus, FreePascal, Kylix, etc. 2 10-12-2009 18:12:29


La franja horaria es GMT +2. Ahora son las 05:25:35.


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
Copyright 1996-2007 Club Delphi