Ir para conteúdo

Arquivado

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

Adriano ToPronto

Problemas com Componente Ado

Recommended Posts

Moçada é o seguinte, esta é a minha primeira aplicação com o componente ado, então seis ja calcula to levando uma surra, mas ta ficando legal, ta indo meio q na base do improviso, mas ta legal!Bom o q acontece é o seguinte o programa tu funcionando legal, porem eu tive q fazer umas gambiarras pra ele funcionar legal!Agora eu quero ver se vcs podem me ajudar em dois detalhes!1º - No data eu trabalhava muito com Data reposition q é qdo ocorre um movimento entre os registro do data ele faz o q eu mandar, otimo pra trabalhar com configuração de texts e estas coisas.Bom no ado eu sei é o willmove, porem ele sempre anda atrasado ou pior nao anda!Por exemplo eu tenho um ado principal adocad e um ado secundario q me traz o nome do cliente q nao é salvo nesta tabela dai qdo anda o nome do cliente sempre vai atrasado sendo q no ado will move esta este codigoPrivate Sub AdoCad_WillMove(ByVal adReason As ADODB.EventReasonEnum, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)AdoCli.ConnectionString = BancoAdoCli.RecordSource = "select Codigo, Nome, Tabela from Clientes where Codigo like '" & Txt(13).Text & "'"AdoCli.RefreshImage1.Picture = LoadPicture(Txt(12).Text)End Subonde txt(13).text é o codigo do cliente armazenado e linkado ao adocade esta imagem tbm nao vai neste evento o q eu tive de fazer pra funcionar foi criar uma função MovAdo e colocar ela nas setas primeiro registro proximo registro, registro anterior e ultimo registroSó assim pra isto funcionar!2º - Com o data eu trabalhava muito com o dbgrid, uma maravilha diga-se de passagem, no ado eu tenho de trabalhar com o datagrid. blzinhaPorem ao incluir um registro e fazer um cancelupdate ele da pau no datagrid. diz q pra cancelar tem de ter pelo menos uma linha. mas ele tem registro e eu acho q ocorre isto prq qdo inserimos ou alteramos o adocad ele automaticamente ja inseri no datagrid nao precisa fazer o adocad.refreshBom o q eu fiz, coloquei um outro componente ado, só pra linkar no datagrid. ta funcionando mas queria fazer funcionar legal!Se alguem souber como resolver estes dois pepinos eu fico muito grato!Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Adriano, não sei se entendi direito suas dúvidas. Na primeira o que você pretende fazer é movimento entre as linhas de sua tabela correto?E na segunda não entendi anda mesmo.Bom, só mudando um pouco o assunto, ao invés de fazer sua conexão da forma que fez, declare duas variáveis diferentes, uma para a conexão e uma para o recordset. Isso te dará um desempenho bem melhor. Por exemplo:Option explicitprivate cn as adobb.connectionprivate rs as adodb.recordset'obs: não dê new adodb aqui, pois se fizer isso, toda vez que ele ler essa variável fará uma nova conexão, e isso é ruim.Ai no form faça :set cn = new adodb.connectioncn.openstring = ""Provider=SQLOLEDB.1;Persist Security Info=False;User ID='sua ID';Initial Catalog='seu BD';Data Source='seu SERVIDOR'"cn.openset rs = new adodb.recordsetrs.open "select Codigo, Nome, Tabela from Clientes where Codigo like '" & Txt(13).Text &", cn, adOpenStatic, adLockPessimistic'esse adopenstatic e o adlockpessimistic podem variar de acordo com sua necessidade, não lembro agora para que serve cada um, mas se precisar me avise que procuro pra você...Depois para poder movimentar-se em sua tabela users.movefirst 'para ir para a primera linhars.moveprevious 'para ir para o linha anteriosrs.movenext 'para ir para a próxima linhars.movelast 'para ir para a últimaSe realmente entendi seu 1° problema acredito que isso te ajude, case não era isso que precisava, o que vale é a intenção, hehehe

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.