COMO SABER SE INSERT INTO SELECT INSERIU DADOS.

FBUR 19/07/2016 14:44:15
#464943
Boa tarde.

Dá para saber se o insert into gravou alguma coisa? Minha string é do tipo INSERT INTO SELECT, ou seja, o INSERT INTO só vai ter alguma coisa para inserir se o SELECT retornar dados. ex:

INSERT INTO SELECT tbl_resultados WHERE numero = 10

Se encontrar registros com número = 10, o INSERT IINTO vai inserí-los, se não, não.
O problema é que eu preciso pegar o id recém-inserido. E preciso tratar se o INSERT INTO não inserir nada.

Dá pra saber se o INSERT INTO inseriu registros?
NILSONTRES 19/07/2016 17:52:20
#464952
Sei que retorna 0 quando não inseriu e 1 quando inseriu, mas não me lembro como eu fazia em vb6.
DS2T 20/07/2016 10:05:52
#464960
Quando você executa o método ExecuteNonQuery do SqlCommand, ele retorna um inteiro indicando o número de linhas que foram afetadas pelo comando. Se for um Insert Into simples, basta verificar se o retorno será 1.

Abraços!
FBUR 20/07/2016 12:23:56
#464964
E o ExecuteNonQuery tem no ADO do VB6?
JABA 20/07/2016 14:31:17
#464968
Resposta escolhida
No comando [Ô]Execute[Ô], verifique se existe alguma propriedade como status. Por exemplo, Msgbox(db.Execute.State)

Achei isso aqui na net:

Dim cnn as ADODB.Connection
Dim [txt-color=#e80000]regafetados[/txt-color] as integer
Dim rs As ADODB.Recordset
Set cnn = New ADODB.Connection

[ô]abrindo uma conexão usando um DSN configurado com o nome de Teste

Cnn.Open [Ô]Teste[Ô] , [Ô]usuario[Ô], [Ô][Ô]

[ô]Verifica se a conexão foi efetivamente efetuada
If cnn.State = adStateOpen then
Msgbox [Ô] Conexão ativa [Ô]
else
MsgBox [Ô] Conexão inativa [Ô]
End if

[ô]Envia uma instrução DELETE para o banco de dados

cnn.Execute [Ô]DELETE from Authors Where au_id=[ô]011-01-0111[ô][Ô], [txt-color=#e80000]regafetados[/txt-color], adExecuteNoRecords

[ô] Mostra o numero de registros afetados

Debug Print [Ô]Registros afetados = [Ô] & regafetados

Cnn.close [ô]Fecha a conexão


http://www.macoratti.net/connect.htm
FBUR 20/07/2016 14:40:51
#464969
JABA, o State serve apenas para saber se a conexão está aberta.

Sobre o adExecuteNoRecords, é uma boa saber dele, mas eu preciso saber dados foram inseridos ou não, em uma variável.
JABA 20/07/2016 17:42:43
#464977
E a variável [Ô]regafetados[Ô] lá no que postei, o que deu?
FBUR 20/07/2016 18:23:31
#464979
é vdd JABA. Parece que é isto mesmo. Ela retorna a qtde. de registros inseridos.

Abs!
Tópico encerrado , respostas não são mais permitidas