caminho do banco - INI (ADO Access)

25/11/2004

0

Tenho uma aplicação utilizando interbase e componentes da palheta ib.

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

Angela

Responder

Posts

25/11/2004

Reginaldo174

Normal... após criado o deive no ODBC

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


Responder

25/11/2004

Reginaldo174

Para criar o drive ODBC via programação



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;



Responder

26/11/2004

Angela

Que tipo de conexão vc aconselha a usar JET OU ODBC

caso eu use a JET, quais são os procedimentos para configurar o ambiente para rede(que opções marcar read/write, shared.....)?


Obrigada


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar