caminho do banco - INI (ADO Access)
25/11/2004
0
Utilizo o mesmo executável para a aplicação na máquina servidora e na máquina cliente.
Apenas passo o caminho do banco por arquivo *.INI, funciona corretamente.
Gostaria de saber como proceder para fazer isso com o ADO e Access.
Estou tomando uma surra.
Obrigada
Angela
Posts
25/11/2004
Reginaldo174
ADOConnection1.ConnectionString := ´Provider=MSDASQL.1;Persist Security Info=False;Data Source=wm´; // wm é o nome do BD try ADOConnection1.Connected := true; except MessageDlg(´nao conectou !´, mtError, [mbOK], 0); end;
pode se criar o drive no ODBC via programação
se precisar é só falar
25/11/2004
Reginaldo174
procedure CreateODBCDriver(Const cDSNName,cExclusive,cDescription,cDataBase,cDefaultPath,cConfigSql,cDriver: string); type TSQLConfigDataSource = function( hwndParent: HWND; fRequest: WORD; lpszDriver: LPCSTR; lpszAttributes: LPCSTR ): BOOL; stdcall; const ODBC_ADD_DSN = 1; // Adiciona uma fonte de dados (data source) ODBC_CONFIG_DSN = 2; // Configura a fonte de dados (data source) ODBC_REMOVE_DSN = 3; // Remove a fonte de dados (data source) ODBC_ADD_SYS_DSN = 4; // Adiciona um DSN no sistema ODBC_CONFIG_SYS_DSN = 5; // Configura o DSN do sistema ODBC_REMOVE_SYS_DSN = 6; // Remove o DSN do sistema 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; // Teste com access (Axes = Access) hLib := LoadLibrary( pChar(cDefaultPath) ); // carregando para o diretório padrão if( hLib <> NULL ) then begin @pFn := GetProcAddress( hLib, pChar(cConfigSql) ); if( @pFn <> nil ) then begin 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( ´Falha ao tentar criar o DSN (Data source).´ ); 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( ´Falha ao tentar criar o banco de dados´ ); end; FindClose( srInfo ); end; FreeLibrary( hLib ); if fResult then ShowMessage( ´Banco de dados criado.´ ); end else begin ShowMessage( ´o sistema não pode carregar a biblioteca ODBCCP32.DLL´ ); end; end; procedure TForm1.Button1Click(Sender: TObject); begin CreateOdbcDriver(´Cludelphi DSN´, ´1´, ´clubedelphi´, ´clubedelphi.MDB´, ´ODBCCP32´, ´SQLConfigDataSource´, ´Microsoft Access Driver (*.mdb)´); end;
26/11/2004
Angela
caso eu use a JET, quais são os procedimentos para configurar o ambiente para rede(que opções marcar read/write, shared.....)?
Obrigada
Clique aqui para fazer login e interagir na Comunidade :)