COMO FAZER COMANDOS SIMILAR DE DAO EM ADO

USUARIO.EXCLUIDOS 12/12/2006 10:02:49
#189471
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
ESLEYSANCHES 12/12/2006 10:06:07
#189473
Do mesmo jeito mais utilize a variavel de conexao tipo:

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 !!
USUARIO.EXCLUIDOS 12/12/2006 15:01:39
#189524

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
USUARIO.EXCLUIDOS 12/12/2006 15:05:32
#189525


Consegui....eu coloquei .... "Delete CadCli.* From CAdCli" e funcionou..

Isso serve tb pro Insert né?

Valew mesmo.
USUARIO.EXCLUIDOS 12/12/2006 16:12:22
#189541
SIM! DELETE, INSERT, UPDATE vc pode fazer da mesma maneira...
USUARIO.EXCLUIDOS 12/12/2006 16:43:08
#189550
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
USUARIO.EXCLUIDOS 12/12/2006 17:04:27
#189557
Resposta escolhida
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
USUARIO.EXCLUIDOS 13/12/2006 08:01:45
#189621

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..
USUARIO.EXCLUIDOS 13/12/2006 17:09:41
#189800


Terei que usar UPDATE tb? com descrição de todos os campos e valores?

Valew gente
USUARIO.EXCLUIDOS 13/12/2006 17:16:11
#189801
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 & "'"

USUARIO.EXCLUIDOS 14/12/2006 07:59:39
#189858

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