Array
(
)

Acesso Exclusivo a uma tabela via ADO

Sarnhold
   - 18 jan 2006

Como faço para obter acesso Exclusivo a uma tabela via ADO?

Via BDE é tb.Exclusive. Qual seria um comando similar para ADO, ou o que posso fazer?


Obrigada.

Sandra.


Sarnhold
   - 19 jan 2006

Acesso Exclusivo me refiro a somente poder apagar todos registros de uma tabela.

Via BDE, tenho por exemplo a seguinte rotina:

dm.tbProgramas.close;
dm.tbProgramas.Exclusive:=true;
if Dm.TbProgramas.State in [dsinactive] then dm.TbProgramas.Open;
dm.tbProgramas.EmptyTable;
while not tbProg.eof do begin
dm.tbProgramas.Append;
dm.tbProgramas.FieldByName(´CODIGO´).Value := ctCod;
dm.tbProgramas.FieldByName(´DESCRICAO´).Value := dm.tbProgramas.Post;

Gostaria de saber como faço via ADO, pois neste caso não tem o método exclusive e nem o método Empty para limpar a tabela.

Alguém sabe como posso fazer?

Obrigada.


Quadrado
   - 20 jan 2006

Voce configura nas propriedades da conexão, dependendo do provedor de acesso que voce está usando para a sua conexão. Por exemplo se for MS Jet para BD Access :

#Código

ConnStr := ´Provider=Microsoft.Jet.OLEDB.4.0;´+
´Password="";´+
´User ID=Admin;´+
´Data Source=´+cNomeBD+´;´+
´Mode=Share Deny None;´+
´Extended Properties="";´+
´Locale Identifier=1033;´+
´Jet OLEDB:System database="";´+
´Jet OLEDB:Registry Path="";´+
´Jet OLEDB:Database Password="";´+
´Jet OLEDB:Engine Type=4;´+
´Jet OLEDB:Database Locking Mode=0;´+
´Jet OLEDB:Global Partial Bulk Ops=2;´+
´Jet OLEDB:Global Bulk Transactions=1;´+
´Jet OLEDB:New Database Password="";´+
´Jet OLEDB:Create System Database=False;´+
´Jet OLEDB:Encrypt Database=False;´+
´Jet OLEDB:Compact Without Replica Repair=False;´+
´Jet OLEDB:SFP=False;´;


Onde na propriedade ´Mode´, voce escolhe o acesso ´Share Exclusive´.

Para acessar estas propriedades, basta clicar 2x sobre o componente TADOConnection, depois no botão ´Build´ e depois na orelha ´Todas´

Boa sorte

Quadrado