Fórum Delphi - Arquivo .INI - SQL Server + ADO Connection #562951
26/09/2016
0
Estou utilizando o SQL SERVER 2000 + Ado Connection no DELPHI XE7
Com a rotina atual, conforme o codigo abaixo. Ele gera o arquivo e conecta normalmente, porém se o arquivo já existe ele dá erro e não conecta nada.
procedure TF_PRINCIPAL.FormShow(Sender: TObject);
var
caminho : String;
servidor, banco, usuario, senha, porta, driverServidor, NomeEstacao : string;
arqIni : TiniFile;
begin
conexao.Connected := False;
//verifica se o arq_conf existe
if not FileExists(ExtractFilePath(Application.ExeName)+'arq_conf.ini') then // Testando se o arquivo arq_conf.INI existe.
begin
MessageDlg('O arquivo de configuração não foi localizado', mtError, mbOKCancel, 0);
// Chamando form2 para a criação do arquivo.
F_CriarConexao.ShowModal;
end
else
begin
// Procura o arq_conf.ini
arqIni := TIniFile.Create(ExtractFilePath(Application.ExeName)+'arq_conf.ini');
servidor := arqIni.ReadString('configuracoes', 'servidor', '');
driverservidor := arqIni.ReadString('configuracoes', 'driver', '');
porta := arqIni.ReadString('configuracoes', 'port', '');
banco := arqIni.ReadString('configuracoes', 'database', '');
usuario := arqIni.ReadString('configuracoes', 'user', '');
senha := arqIni.ReadString('configuracoes', 'password', '');
NomeEstacao := arqIni.ReadString('configuracoes', 'WorkStation', '');
conexao.ConnectionString := 'Provider='+DriverServidor+';'+
'Persist Security Info=True;'+
'User ID='+usuario+';'+
'Password='+senha+';'+
'Initial Catalog='+banco+';'+
'Data Source='+servidor+';'+
'Auto Translate=True;'+
'Packet Size=4096;'+
'Workstation ID='+NomeEstacao+';'+
'Network Library=DBMSSOCN';
end;
try
conexao.Connected := true;
except
end;CASO NÃO ENCONTRE o arq_ini ele abre outro form para lançar os dados de conexão
F_CRIARCONEXAO
var Config :TIniFile;
begin
Config := TIniFile.Create(ExtractFilePath(Application.ExeName)+'arq_conf.ini'); // Criando o arquivo CfgBase.INI
try
Config.WriteString('configuracoes', 'Servidor', EdtServidor.Text);
Config.WriteString('configuracoes', 'driver' , EdtDriver.Text);
Config.WriteString('configuracoes', 'port' , EdtPorta.Text);
Config.WriteString('configuracoes', 'database', EdtBanco.Text);
Config.WriteString('configuracoes', 'user' , EdtUsuario.Text);
Config.WriteString('configuracoes', 'password', EdtSenha.Text);
Config.WriteString('configuracoes', 'WorkStation', EdtWorkStation.Text);
finally
Config.Free;
ShowMessage('Arquivo com extensão .INI foi criado com sucesso!');
Close;
end;
Geovany Felipeto
Curtir tópico
+ 0Post mais votado
26/09/2016
2. Se sim, Chame o procedimento de leitura do INI
3. Realizou a leitura do INI, tente a conexão
4. Abriu a aplicação, é verificado se existe o INI
5. Se não, abre o form de criação
6. Criou o arquivo, repete o passo 2 e 3.
O que falei da primeira vez foi que apos chamar o form
var Config :TIniFile;
begin
Config := TIniFile.Create(ExtractFilePath(Application.ExeName)+'arq_conf.ini'); // Criando o arquivo CfgBase.INI
try
Config.WriteString('configuracoes', 'Servidor', EdtServidor.Text);
Config.WriteString('configuracoes', 'driver' , EdtDriver.Text);
Config.WriteString('configuracoes', 'port' , EdtPorta.Text);
Config.WriteString('configuracoes', 'database', EdtBanco.Text);
Config.WriteString('configuracoes', 'user' , EdtUsuario.Text);
Config.WriteString('configuracoes', 'password', EdtSenha.Text);
Config.WriteString('configuracoes', 'WorkStation', EdtWorkStation.Text);
finally
Config.Free;
ShowMessage('Arquivo com extensão .INI foi criado com sucesso!');
Close;
end;
Você deveria chamar sua rotina para realizar a conexão
servidor := arqIni.ReadString('configuracoes', 'servidor', '');
driverservidor := arqIni.ReadString('configuracoes', 'driver', '');
porta := arqIni.ReadString('configuracoes', 'port', '');
banco := arqIni.ReadString('configuracoes', 'database', '');
usuario := arqIni.ReadString('configuracoes', 'user', '');
senha := arqIni.ReadString('configuracoes', 'password', '');
NomeEstacao := arqIni.ReadString('configuracoes', 'WorkStation', '');
conexao.ConnectionString := 'Provider='+DriverServidor+';'+
'Persist Security Info=True;'+
'User ID='+usuario+';'+
'Password='+senha+';'+
'Initial Catalog='+banco+';'+
'Data Source='+servidor+';'+
'Auto Translate=True;'+
'Packet Size=4096;'+
'Workstation ID='+NomeEstacao+';'+
'Network Library=DBMSSOCN';
end;
try
conexao.Connected := true;
except
end;
Também poderá usar um arquivo Udl para realizar a conexão
Raimundo Pereira
Gostei + 1
Mais Posts
26/09/2016
Raimundo Pereira
Não falta setar
conexao.ConnectionString conforme os dados do Edits carregados ?
Gostei + 0
26/09/2016
Geovany Felipeto
Gostei + 0
26/09/2016
Jones Granatyr
Você tentou colocar um breakpoint pra verificar se o arquivo está realmente sendo carregado?
Jones
Gostei + 0
27/09/2016
Geovany Felipeto
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)