RETORNO DE SQL NO VB6

FBGSYSTEMS 12/09/2012 09:08:08
#409476
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.
VELDRAME 12/09/2012 10:34:13
#409482
Você quer retorna o que?
A resposta do banco, tipo: [Ô]Executado com sucesso![Ô]
Retornar o ID do Insert?

Seja mais claro por favor.
FBGSYSTEMS 12/09/2012 10:40:20
#409484
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.
ERIVELTONVGA 12/09/2012 11:27:11
#409491
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.
FBGSYSTEMS 12/09/2012 11:29:03
#409492
Esqueci de uma coisa. Em DAO seria a mesma coisa?
ERIVELTONVGA 12/09/2012 12:03:32
#409495
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.
VELDRAME 12/09/2012 12:13:10
#409496
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[ô]. )

MARCELO.TREZE 12/09/2012 12:22:55
#409497
Resposta escolhida
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:

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