como acessar dois databases usando ADO ?
Tenho que acessar dois databases (SQL Server) no mesmo servidor usando ADO.
Eu passo os parametros de conexao (connectionstring) em tempo de execucao para dois adoconnection e faço:
adoconnection1.connected:=true;
adoconnection2.connected:=true;
Em seguida eu abro as adquerys ligadas ao adoconnection1:
adoquery.open;
Ate aí tudo bem, mas quando vou abrir as adoquerys ligadas ao adoconnection2 dá erro: ´Multiple steps generated erros´.
Já inverti a ordem, ou seja, abrir o segundo depois o primeiro, mas ocorre a mesma coisa. Não consigo abrir ao mesmo adoquerys em conexoes diferentes.
O que eu faço ?
Eu passo os parametros de conexao (connectionstring) em tempo de execucao para dois adoconnection e faço:
adoconnection1.connected:=true;
adoconnection2.connected:=true;
Em seguida eu abro as adquerys ligadas ao adoconnection1:
adoquery.open;
Ate aí tudo bem, mas quando vou abrir as adoquerys ligadas ao adoconnection2 dá erro: ´Multiple steps generated erros´.
Já inverti a ordem, ou seja, abrir o segundo depois o primeiro, mas ocorre a mesma coisa. Não consigo abrir ao mesmo adoquerys em conexoes diferentes.
O que eu faço ?
Rodrigo Costa
Curtidas 0
Respostas
Marcelo.c
07/05/2003
Eu utilizo conexão com dois BDs, nunca tive esse tipo de problema.
Talvez o problema seja no código SQL.
Talvez o problema seja no código SQL.
GOSTEI 0
Rodrigo Costa
07/05/2003
Com é que vc faz ?
procedure TForm_login.logar;
var
mensagem:integer;
begin
mensagem:=0;
if (trim(edit_senha.Text)=´´) or (trim(edit_usuario.text)=´´) then
begin
application.MessageBox(´Usuário/Senha inválidos !´,´E R R o´,mb_ok+mb_iconstop);
exit;
end;
// SERVIDOR DE GRAVACAO
vservidor:=leini(´ConfigBD´,´BD_GRAVACAO´,´SERVIDOR´);
vbase:=leini(´ConfigBD´,´BD_GRAVACAO´,´BASE´);
{String de conexão com o banco}
Form_matriculaMBA.ADOConexao_gravacao.ConnectionString:=´Provider=SQLOLEDB.1;´+
´Password=´+form_login.edit_senha.text+´;´+
´Persist Security Info=True;´+
´User ID=´+form_login.Edit_usuario.Text+´;´+
´Initial Catalog=´+vbase+´;´+
´Data Source=´+vservidor+´;´+
´Use Procedure for Prepare=1;Auto Translate=True;´+
´Packet Size=4096;Use Encryption for Data=False;Tag with column collation when possible=False´;
{}
{Tentativa de se conectar ao banco}
try
Form_matriculaMBA.ADOConexao_gravacao.connected:=true
except
on Exception do mensagem:=1;
end;
{}
if mensagem=1 then
begin
application.MessageBox(´Não foi possível se conectar ao servidor de gravação!´,´E r r o´,mb_ok + mb_iconstop);
edit_senha.Text:=´´;
edit_usuario.SetFocus;
exit;
end;
// SERVIDOR DE LEITURA
vservidor:=leini(´ConfigBD´,´BD_LEITURA´,´SERVIDOR´);
vbase:=leini(´ConfigBD´,´BD_LEITURA´,´BASE´);
{String de conexão com o banco}
Form_matriculaMBA.ADOConexao_leitura.ConnectionString:=´Provider=SQLOLEDB.1;´+
´Password=´+form_login.edit_senha.text+´;´+
´Persist Security Info=True;´+
´User ID=´+form_login.Edit_usuario.Text+´;´+
´Initial Catalog=´+vbase+´;´+
´Data Source=´+vservidor+´;´+
´Use Procedure for Prepare=1;Auto Translate=True;´+
´Packet Size=4096;Use Encryption for Data=False;Tag with column collation when possible=False´;
{}
{Tentativa de se conectar ao banco}
try
Form_matriculaMBA.ADOConexao_leitura.connected:=true
except
on Exception do mensagem:=1;
end;
{}
if mensagem=1 then
begin
application.MessageBox(´Não foi possível se conectar ao servidor de leitura!´,´E r r o´,mb_ok + mb_iconstop);
edit_senha.Text:=´´;
edit_usuario.SetFocus;
exit;
end;
gravaini(´ConfigBD´,´BD_GRAVACAO´,´USUARIOPADRAO´,edit_usuario.Text);
hide;
adoquery_curso.Open;
adoquery_disciplina.Open;
adoquery_funcionario.Open;
adoquery_sala.Open;
adoquery_tbDiscprof.Open;
adoquery_tbPraca.Open;
adoquery_tbHorario.Open;
Form_matriculaMBA.showmodal;
GOSTEI 0