COMO FAZER COMANDOS SIMILAR DE DAO EM ADO
Olá Pessoal
Bom..eu tenho um programa em VB6 com Mysql via Ado..e gostaria de saber o seguinte
Primeiro o código de conexão Ado:
strConnect = "DRIVER={MySQL ODBC 3.51 Driver};server=" & mySqlIP & ";uid=" & usr_id & ";pwd=" & pass & ";database=sys"
Set ConectCli = New ADODB.Connection
ConectCli.CursorLocation = adUseClient
ConectCli.Open strConnect
Set TbCliSql = New ADODB.Recordset
TbCliSql.CursorType = adOpenStatic
TbCliSql.CursorLocation = adUseClient
TbCliSql.LockType = adLockPessimistic
TbCliSql.Source = "Select * From CadCli"
TbCliSql.ActiveConnection = ConectCli
TbCliSql.Open "Select * From CadCli"
Bom..muito bem...com esse tipo de conexão...com faço pra executar esses comandos que eu fazia no DAO:
Bd.execute "Delete * From CadCli"
Bd.execute "Insert Into CadCli " & "Select ..."
Valew Galera
Bom..eu tenho um programa em VB6 com Mysql via Ado..e gostaria de saber o seguinte
Primeiro o código de conexão Ado:
strConnect = "DRIVER={MySQL ODBC 3.51 Driver};server=" & mySqlIP & ";uid=" & usr_id & ";pwd=" & pass & ";database=sys"
Set ConectCli = New ADODB.Connection
ConectCli.CursorLocation = adUseClient
ConectCli.Open strConnect
Set TbCliSql = New ADODB.Recordset
TbCliSql.CursorType = adOpenStatic
TbCliSql.CursorLocation = adUseClient
TbCliSql.LockType = adLockPessimistic
TbCliSql.Source = "Select * From CadCli"
TbCliSql.ActiveConnection = ConectCli
TbCliSql.Open "Select * From CadCli"
Bom..muito bem...com esse tipo de conexão...com faço pra executar esses comandos que eu fazia no DAO:
Bd.execute "Delete * From CadCli"
Bd.execute "Insert Into CadCli " & "Select ..."
Valew Galera
Do mesmo jeito mais utilize a variavel de conexao tipo:
Espero que te ajude !!
Abraços !!
Set CONN = createobject("ADODB.Connection")
CONN.open "String de conexão mysql aqui"
CONN.execute "DELETE * FROM <tabela>"
msgbox("Dados apagados !!")
Espero que te ajude !!
Abraços !!
Fiz exatamente o que disse..meu caro...mas deu erro...
Não tem nenhuma outra propriedade que eu precisa colocar no código pra permitir o comando?
Valew Esley
Consegui....eu coloquei .... "Delete CadCli.* From CAdCli" e funcionou..
Isso serve tb pro Insert né?
Valew mesmo.
SIM! DELETE, INSERT, UPDATE vc pode fazer da mesma maneira...
Citação:SINKERTEC escreveu:
Consegui....eu coloquei .... [Ãâ€ÂÂ]Delete CadCli.* From CAdCli[Ãâ€ÂÂ] e funcionou..
Isso serve tb pro Insert né?
Valew mesmo.
praticamente mesma coisa
flw
Citação:SINKERTEC escreveu:
Consegui....eu coloquei .... [Ãâ€ÂÂ]Delete CadCli.* From CAdCli[Ãâ€ÂÂ] e funcionou..
Isso serve tb pro Insert né?
Valew mesmo.
Pro DELETE, não precisa do *, pois se tá deltando, vai deltar o registro todo mesmo:
Deltar:
Cn.Execute "DELETE FROM Tabela WHERE CampoChave = '" & Valor & "'"
Atualizar:
Cn.Execute "UPDATE FROM Tabela " & _
"SET Campo1 = '" & Valor1 & "', " & _
" Campo2 = '" & Valor2 & " " & _
"WHERE CampoChave = '" & Valor & "'"
Inserir:
Cn.Execute "INSERT INTO Tabela(Campo1, Campo2) " & _
"VALUES('" & Valor1 & "', '" & Valor2 & "')"
Selecionar
rst.Open "SELECT Campo1, Campo2 FROM Tabela" & _
"WHERE CampoChave = '" & Valor & "'"
Recomendo que antes de cada transação (INSERT, DELETE, UPDATE), vc dê um BeginTrans e CommitTrans (se for executar mais de um comando de uma vez, dê o begin e commit apenas uma vez e execute no meio):
Cn.BeginTrans
Cn.Execute "INSERT INTO Tabela(Campo1, Campo2) " & _
"VALUES('" & Valor1 & "', '" & Valor2 & "')"
Cn.Execute "DELETE FROM Tabela WHERE CampoChave = '" & Valor & "'"
Cn.CommitTrans
O básico é isso, qualquer dúvida poste...flw
Blz Matioli...pra metade das coisas eu usei essas dicas e funcionaram maravilhosamente, agora se eu precisasse fazer isso:
Inserir dados de um select de vários campos de tabelas diferentes em uma única tabela exemplo:
ConectRelat.Execute "Insert Into Relat " & "SELECT CadTermo.ODS, CadTermo.DataODS, CadTermo.Class, CadTermo.Acao, CadTermo.Item, CadTermo.NTermo, CadRot.Loc, CadRot.Equip, CadTermo.CodCli FROM CadTermo INNER JOIN CadRot ON CadTermo.CliItem = CadRot.ItemCli AND CadTermo.Item = CadRot.Item WHERE CadTermo.DataODS=#" & DataNova & "# AND CadTermo.CodCli='" & TxtCod & "'"
Eu fazia isso em DAO..e precisarei fazer agora em ADO
Agradeço a todos..mais uma vez..
Terei que usar UPDATE tb? com descrição de todos os campos e valores?
Valew gente
Cara, com ADO é exatamente a mesma coisa:
Cn.Execute "Insert Into Relat " & "SELECT CadTermo.ODS, CadTermo.DataODS, CadTermo.Class, CadTermo.Acao, CadTermo.Item, CadTermo.NTermo, CadRot.Loc, CadRot.Equip, CadTermo.CodCli FROM CadTermo INNER JOIN CadRot ON CadTermo.CliItem = CadRot.ItemCli AND CadTermo.Item = CadRot.Item WHERE CadTermo.DataODS=#" & DataNova & "# AND CadTermo.CodCli='" & TxtCod & "'"
Fala Matioli
Bom...eu fiz isso que vc indicou e realmente ...como eu tinha testado antes, n deu certo...
Penso, que eu, precise montar alguma sintaxe pra unir essas tabelas..pq por exemplo, para cada tabela criei uma conexão diferente.estou fazendo errado? Se sim, como faria, pq tenho várias tabelas.
Se vc conseguir me mandar um exemplo completo de como fazer consulta em várias tabelas como no exemplo acima..
Muito agradecido pela ajudapor enquanto.
Tópico encerrado , respostas não são mais permitidas