RETORNO DE SQL NO VB6
Bom dia galera.
Queria saber como pegar o retorno de um sql no vb6. Com select eu sei fazer, porem nao sei se da certo com insert, update e delete.
Tipo no php
$aa = mysql_query([Ô]insert bla bla bla[Ô]);
if ($aa <> 0 ){
[ô]funcionou
}
Eu sei fazer usando a conexao.execute, porem nao sei como verificar o retorno disso.
Queria saber como pegar o retorno de um sql no vb6. Com select eu sei fazer, porem nao sei se da certo com insert, update e delete.
Tipo no php
$aa = mysql_query([Ô]insert bla bla bla[Ô]);
if ($aa <> 0 ){
[ô]funcionou
}
Eu sei fazer usando a conexao.execute, porem nao sei como verificar o retorno disso.
Você quer retorna o que?
A resposta do banco, tipo: [Ô]Executado com sucesso![Ô]
Retornar o ID do Insert?
Seja mais claro por favor.
A resposta do banco, tipo: [Ô]Executado com sucesso![Ô]
Retornar o ID do Insert?
Seja mais claro por favor.
Desculpe se nao fui bem claro.
Vou tentar explicar novamente.
Retornar se a operaçao foi executada ou nao
Por exemplo eu vou dar um delete em algum registro, porem passei o parametro errado. Ele vai passar pela linha db.execute [Ô]delete from etcetc[Ô] porem eu nao sei se foi deletado, ou se apenas nao deu erro e isso nao executou nada.
O exemplo em php que coloquei acho que ilustra bem.
Vou tentar explicar novamente.
Retornar se a operaçao foi executada ou nao
Por exemplo eu vou dar um delete em algum registro, porem passei o parametro errado. Ele vai passar pela linha db.execute [Ô]delete from etcetc[Ô] porem eu nao sei se foi deletado, ou se apenas nao deu erro e isso nao executou nada.
O exemplo em php que coloquei acho que ilustra bem.
FBGSYSTEMS bom dia
Eu faço assim olha este exemplo.
Dim rsTemp As ADODB.Recordset
Dim regAfetado As Integer
[ô]executando
Set rsTemp = bancodedados.Execute(Sql, [txt-color=#e80000]regAfetado[/txt-color])
[ô]verificando se deu certo ou não
If [txt-color=#e80000]regAfetado[/txt-color] = 0 Then
MsgBox [Ô]Não há dados com estes parâmetros para serem alerados!![Ô], vbExclamation, [Ô]Critério Inválido[Ô]
Else
MsgBox [Ô]Foram alterados [Ô][Ô][Ô] & [txt-color=#e80000]regAfetado [/txt-color]& [Ô][Ô][Ô] Registros com Sucesso[Ô], vbInformation, [Ô]Atualização[Ô]
End If
Espero ter ajudado.
Eu faço assim olha este exemplo.
Dim rsTemp As ADODB.Recordset
Dim regAfetado As Integer
[ô]executando
Set rsTemp = bancodedados.Execute(Sql, [txt-color=#e80000]regAfetado[/txt-color])
[ô]verificando se deu certo ou não
If [txt-color=#e80000]regAfetado[/txt-color] = 0 Then
MsgBox [Ô]Não há dados com estes parâmetros para serem alerados!![Ô], vbExclamation, [Ô]Critério Inválido[Ô]
Else
MsgBox [Ô]Foram alterados [Ô][Ô][Ô] & [txt-color=#e80000]regAfetado [/txt-color]& [Ô][Ô][Ô] Registros com Sucesso[Ô], vbInformation, [Ô]Atualização[Ô]
End If
Espero ter ajudado.
Esqueci de uma coisa. Em DAO seria a mesma coisa?
Se você quer somente uma resposta de retorno faça isso
exemplo.
no botao delete
abaixo do comando de deletar o registro
MsgBox ([Ô]Registro Deletado com Sucesso![Ô])
Pois se der um erro ao excluir ele vai dar run-timer antes de passar no MSGBOX, eu faço isto assim.
A primeira mensagem acima ele atualiza um campo data e me mostra quantos arquivos foram alterados.
exemplo.
no botao delete
abaixo do comando de deletar o registro
MsgBox ([Ô]Registro Deletado com Sucesso![Ô])
Pois se der um erro ao excluir ele vai dar run-timer antes de passar no MSGBOX, eu faço isto assim.
A primeira mensagem acima ele atualiza um campo data e me mostra quantos arquivos foram alterados.
Primeiro, desculpe, nçao me atentei ao seu exemplo, realmente esta bem claro o que você precisa.
Você tem um objeto de conexão
Dim conn As ADODB.Connection
Set conn = new ADODB.Connection
conn.execute [Ô]Insert[Ô]
if conn.error(0) <> null [ô]Quer dizer que ele não tem resposta e vai apresentar o erro
MsgBox [Ô]Erro ao efetuar o comndo [ô]INSERT[ô] na tabela [ô]LogErros[ô] do Banco [ô]IMPORTACAO[ô][Ô]
end if
O comando conn.error(0) retorna uma resposta da conexão.
No meu Teste retornou: [Ô]Changed database context to [ô]importacao[ô].[Ô] ( Mudou contexto de banco de dados [ô]IMPORTACAO[ô]. )
Você tem um objeto de conexão
Dim conn As ADODB.Connection
Set conn = new ADODB.Connection
conn.execute [Ô]Insert[Ô]
if conn.error(0) <> null [ô]Quer dizer que ele não tem resposta e vai apresentar o erro
MsgBox [Ô]Erro ao efetuar o comndo [ô]INSERT[ô] na tabela [ô]LogErros[ô] do Banco [ô]IMPORTACAO[ô][Ô]
end if
O comando conn.error(0) retorna uma resposta da conexão.
No meu Teste retornou: [Ô]Changed database context to [ô]importacao[ô].[Ô] ( Mudou contexto de banco de dados [ô]IMPORTACAO[ô]. )
Resposta clara e direta, vc não informa o que dá certo e sim o que dá errado.
em uma instrução delete, insert ou update vc é obrigado a fazer tudo certo se não fizer gera um erro, ou seja suponha que vc queira deletar o registro 15263 de uma tabela porém esse registro a ser deletado não existe, então um erro vai ocorrer.
resumindo use on error goto no código e pronto
ex:
e é só isso
em uma instrução delete, insert ou update vc é obrigado a fazer tudo certo se não fizer gera um erro, ou seja suponha que vc queira deletar o registro 15263 de uma tabela porém esse registro a ser deletado não existe, então um erro vai ocorrer.
resumindo use on error goto no código e pronto
ex:
On Error Goto TrataErro
ação (delete insert ou update)
msgbox [Ô]ação deu certo[Ô]
Exit Sub
TrataErro:
msgbox [Ô]não deu certo[Ô]
e é só isso
Tópico encerrado , respostas não são mais permitidas