[firebase-br] Off Top: Problema Firebird com VB 6

Marcio André marciokviatkovski em yahoo.com.br
Ter Abr 10 14:04:42 -03 2007


Na época em que eu testei, alguns provedores OLEDB não suportavam deleção de 
dados no recordset quando este era aberto no lado do cliente (CursorLocation 
= adUseClient) e outros OLEDBs e ODBCs não davam suporte total às 
características do ADO quando aberto no lado do servidor.
Enfim, parece que cada fabricante implementa do jeito que quer os drivers.
Em vez de você abrir o registro no recodset para apagá-lo, tente executar 
diretamente uma instrução SQL Delete:

        Dim Str2 As String
        Dim Rs2 As New ADODB.Recordset
        If MsgBox("Deseja Realmente Excluir a Consulta do(a) Paciente " &
Lista.TextMatrix(Lista.Row, 4), vbQuestion + vbYesNo + 256, "Atenção") =
vbYes Then
            '--------------------
            Str2 = "Delete From AGENDA WHERE AGENDA.CODIGO=" &
Val(Lista.TextMatrix(Lista.Row, 1))
            DB.Execute Str2
            '--------------------
        End If

[]'s,
Marcio

----- Original Message ----- 
From: "Cicero F" <cicero_cfm em hotmail.com>
To: <lista em firebase.com.br>
Sent: Tuesday, April 10, 2007 1:39 PM
Subject: [firebase-br] Off Top: Problema Firebird com VB 6


Boa tarde companheiros e desculpa pelo off, mas é q ja to loquinho a ponto
de largar mão do FireBird.

Bom tenho uma tabela q é uma agenda médica e não estou conseguindo excluir
registro dela estou usando o FireBird 2.0 e VB 6 com OLEDB e fazendo
conforme abaixo:

        Dim Str2 As String
        Dim Rs2 As New ADODB.Recordset
        If MsgBox("Deseja Realmente Excluir a Consulta do(a) Paciente " &
Lista.TextMatrix(Lista.Row, 4), vbQuestion + vbYesNo + 256, "Atenção") =
vbYes Then
            '--------------------
            Str2 = "SELECT * From AGENDA WHERE AGENDA.CODIGO=" &
Val(Lista.TextMatrix(Lista.Row, 1))
            Rs2.CursorLocation = adUseClient
            Rs2.Open Str2, DB, adOpenKeyset, adLockOptimistic
            '--------------------
            If Rs2.RecordCount <> 0 Then
                '----------------
                Rs2.Delete
                '----------------
            End If
            Rs2.Close
            Set Rs2 = Nothing
            '--------------------
        End If

Esta dando a seguinte msg :
E esta dando o seguinte erro : Run-time error '-2147217864(80040e38)'

"A linha não pode ser localizada para atualização. Alguns valores podem ter
sido alterados desde que ela foi lida pela última vez."



Alguem poderia me dizer o q esta acontecendo ?

Grato

Cícero

_________________________________________________________________
Verificador de Segurança do Windows Live OneCare: combata já vírus e outras
ameaças! http://onecare.live.com/site/pt-br/default.htm


______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço 
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa 





Mais detalhes sobre a lista de discussão lista