Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

caezar

Precedure ADOTableOpen

Recommended Posts

Olá amigos do Imasters.

Tenho um form e nele tem varios ADOTable's e gostaria de fazer uma procedure para abri-las!

Então eu fiz assim:

Obs:

Util.strConex é uma variavel que guarda a sting de conexão.

formSolicitante é o form que está aberto no momento a qual pertencem as tabelas

 

procedure TformMain.abreTabelas(formSolicitante:TForm); var msg:string; iCont:Integer; begin   for iCont:=0 to formSolicitante.ComponentCount-1 do 	begin 	  if formSolicitante.Components[iCont] is TADOTable then 	  begin 		TADOTable(formSolicitante.Components[iCont]).Active:=false; 		TADOTable(formSolicitante.Components[iCont]).ConnectionString:=Util.strConex; 		ShowMessage(TADOTable(formSolicitante.Components[iCont]).Name); 		ShowMessage(TADOTable(formSolicitante.Components[iCont]).ConnectionString); 		Try 		  TADOTable(formSolicitante.Components[iCont]).Active:=True; 		except 		on E:Exception do 		  begin 		  msg := 'Não foi possível abrir as tabelas do '; 		  msg := msg + 'sistema : (' + E.Message + ')!'; 		  MessageDlg(msg, mtError, [mbOk],0); 		  exit; 		  end; 		end; 	  end; 	end; end;
Eu analizei o código atravéz do dois ShowMessage's, e a tabela recebe corretamente a string de conexão atravéz do Util.strConex mas na hora que o código tenta ativar a tabela dá o seguinte erro:

Missing Connection or ConnectionString.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente o seguinte:

 

procedure TformMain.abreTabelas(formSolicitante:TForm);var	msg: string;	iCont: Integer;beginfor iCont:=0 to formSolicitante.ComponentCount-1 do	begin	if formSolicitante.Components[iCont] is TADOTable then		begin		(formSolicitante.Components[iCont] as TADOTable).Active:=False;		(formSolicitante.Components[iCont] as TADOTable).ConnectionString:=Util.strConex;		try			(formSolicitante.Components[iCont] as TADOTable).Open;		except			on E:Exception do				begin				msg:='Não foi possível abrir as tabelas do ';				msg:=msg + 'sistema : (' + E.Message + ')!';				MessageDlg(msg, mtError, [mbOk],0);				exit;				end;			end;		end;	end;end;

você tb deveria verificar se a conexão com o BD esta sendo executada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.