Criar driver ODBC via programação – Delphi

25 09 2007

procedure TConfiguraDraverODBC.CreateODBCDriver(const cDSNName, cExclusive, cDescription, cDataBase, cDefaultPath, cConfigSql, cDriver: string);
//
// Cria um Driver no ODBC
//
// Deve ser usado da seguinte forma
//
// CreateOdbcDriver(‘TestDSN’,’1′,’TestData’,’TestData.MDB’,’ODBCCP32′,’SQLConfigDataSource’,’Microsoft Access Driver (*.mdb)’);
//
type

TSQLConfigDataSource = function( hwndParent: HWND; fRequest: WORD; lpszDriver: LPCSTR; lpszAttributes: LPCSTR ): BOOL; stdcall;

const
ODBC_ADD_DSN = 1; // Add data source
ODBC_CONFIG_DSN = 2; // Configure (edit) data source
ODBC_REMOVE_DSN = 3; // Remove data source
ODBC_ADD_SYS_DSN = 4; // add a system DSN
ODBC_CONFIG_SYS_DSN = 5; // Configure a system DSN
ODBC_REMOVE_SYS_DSN = 6; // remove a system DSN
var
pFn: TSQLConfigDataSource;
hLib: LongWord;
strDriver: string;
strHome: string;
strAttr: string;
strFile: string;
fResult: BOOL;
ModName: array[0..MAX_PATH] of Char;
srInfo : TSearchRec;
begin
Windows.GetModuleFileName( HInstance, ModName, SizeOf(ModName) );
strHome := ModName;
while ( strHome[length(strHome)] <> ‘\’ ) do
Delete( strHome, length(strHome), 1 );
strFile := strHome + cDatabase; // Test Access Rights (Axes = Access)
hLib := LoadLibrary( pChar(cDefaultPath) ); // load from default path
if( hLib <> NULL ) then
begin
@pFn := GetProcAddress( hLib, pChar(cConfigSql) );
if( @pFn <> nil ) then
begin
// force (re-)create DSN
strDriver := cDriver;
strAttr := Format( ‘DSN=%s’+#0+
‘DBQ=%s’+#0+
‘Exclusive=%s’+#0+
‘Description=%s’+#0+#0,
[cDSNName,strFile,cExclusive,cDescription] );
fResult := pFn( 0, ODBC_ADD_SYS_DSN, @strDriver[1], @strAttr[1] );
if( fResult = false ) then
ShowMessage( ‘Create DSN (Datasource) failed!’ );
// test/create MDB file associated with DSN
if( FindFirst( strFile, 0, srInfo ) <> 0 ) then
begin
strDriver := cDriver;

strAttr := Format( ‘DSN=%s’+#0+
‘DBQ=%s’+#0+
‘Exclusive=%s’+#0+
‘Description= %s’+#0+#0+
‘CREATE_DB=”%s”‘#0+#0,
[cDSNName,strFile,cExclusive,cDescription,strFile]);
fResult := pFn( 0, ODBC_ADD_SYS_DSN, @strDriver[1], @strAttr[1] );
if( fResult = false ) then
ShowMessage( ‘Create DFB (Database file) failed!’ );
end;
FindClose( srInfo );

end;
FreeLibrary( hLib );
if fResult then
ShowMessage( ‘Create FDB (Database file) Sucefull created!’ );
end
else
begin
ShowMessage( ‘Unable to load IscDbc.DLL’ );
end;
end;

Anúncios

Acções

Information

2 responses

7 12 2007
Jonas

Sobre “Criar driver ODBC via programação – Delphi”

Cara, pra mim dá que não existe o tipo “TSearchRec;” e não existe as funcoes Format e nem dFirst…
Será que precisa de alguma biblioteca? Qual?
Eu uso o Delphi 2005. Funciona? Precisa ser qual Delphi???

6 04 2010
Glicose

kkkkkkk… Não mete essa..rsrsrsrs

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s




%d bloggers like this: