ALTERAR INFORMACAO DOS REGISTROS FIREBIRD

ZANETTI 08/12/2009 13:41:52
#329339
Galera como posso fazer alguma alteração em registro do firebird via vb.
tenho essa conecção:

Dim cn As New ADODB.Connection
Dim rs1 As New Recordset
Dim oConn As ADODB.Connection
Dim oCmd As ADODB.Command
Dim oRS As ADODB.Recordset

Dim sulod As New Recordset
sulod.Open [Ô]select * from estoque[Ô], cn, adOpenDynamic, adLockOptimistic

sulod.EditMode
sulod.Fields([Ô]descricao[Ô]).Value = t1
sulod.Fields([Ô]fornecedor[Ô]).Value = T2
sulod.Fields([Ô]preco[Ô]).Value = T6
sulod.Fields([Ô]custocompr[Ô]).Value = t7
sulod.Fields([Ô]customedio[Ô]).Value = t7
sulod.Fields([Ô]qtd_atual[Ô]).Value = T3
sulod.Update

mas não funciona tem outro metodo?
obrigado.
TECLA 08/12/2009 14:09:00
#329341
Resposta escolhida
Sim.

cn.Execute [Ô]UPDATE estoque SET descricao=[ô][Ô] & t1 & [Ô][ô] WHERE codigo=[Ô] & codProduto
MsgBox [Ô]Estoque atualizado![Ô], , [Ô]Estoque[Ô]


Acrescente os demais campos na cláusula SET separados por vírgula.
ZANETTI 08/12/2009 14:45:53
#329344
tecla ficaria assim
cn.Execute [Ô]UPDATE estoque SET descricao=[ô][Ô] & t1 & [Ô][ô] WHERE fornecedor=[Ô] & T2 & [Ô][ô] WHERE custocompr=[Ô] & t7 & [Ô][ô] WHERE qtd_atual=[Ô] & t3

ele da erro:
dynamic sql error
sql error code=-104
unexpected end of command - line, column 30
SURFMANPR 08/12/2009 15:06:32
#329346
O Tecla explicou certinho, faltou vc colocar os dados no SET corretamente.

cn.execute [Ô]UPDATE TABELA SET descricao = [Ô] & t1 & [Ô] , fornecedor = [Ô] & t1 & [Ô] , preco = [Ô] & t1 & [Ô], custocompr = [Ô] & t1 & [Ô], customedio = [Ô] & t1 & [Ô], qtd_atual = [Ô] & t1 & [Ô] WHERE Codigo_Do_Item = [Ô] & Codigo

O Código é o Codigo do teu registro.
Arrume os [Ô]T[Ô] das tuas variáveis.

Se vc for passar mais de um parametro no WHERE, este deverá ser seguido por AND ou OR:
UPDATE  { table_name  | view_name }
SET { column_name = expression } [ ,...n ]
[ FROM { table_name | view_name } [ ,...n ] ]
[ WHERE < search_condition > ]


Pesquise no google sobre [Ô]UPDATE (SQL Statement)[Ô]
http://www.google.com.br/search?q=UPDATE+%28SQL+Statement%29&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:pt-BR:official&client=firefox-a

ZANETTI 08/12/2009 15:07:13
#329347
opa
tecla funcionou mas ele faz alteração em todo o banco de dados ex: c tiver 10 registro ele altera nos 10
vc sabe o porque?
obrigado
TECLA 08/12/2009 15:20:19
#329350
Sei, na verdade você não especificou o campo CHAVE na cláusula WHERE.

Veja um exemplo abaixo:
Cod | Descricao | Valor
10 | Produto 10 | R$ 10,00
20 | Produto 20 | R$ 20,00
30 | Produto 30 | R$ 30,00

Para alterar o valor do PRODUTO 10, você utiliza o campo COD para que o UPDATE não seja feito em TODOS OS REGISTROS.
Exemplo:
UPDATE produto SET valor=100.00 WHERE cod=10


O resultado seria:
Cod | Descricao | Valor
10 | Produto 10 | R$ 100,00
20 | Produto 20 | R$ 20,00
30 | Produto 30 | R$ 30,00

Ficou mais claro agora?
Se sim, é só aplicar o exemplo acima no seu caso.
SURFMANPR 08/12/2009 15:21:18
#329351
Citação:

[Ô][ô] WHERE codigo=[Ô] & codProduto


Está também no Código do Tecla... passe o código do item do teu produto, assim vc restringe o produto/item que quer alterar.
Claro, se a chave não for única, vai atualizar todos com a mesma chave.
ZANETTI 08/12/2009 15:54:44
#329355
valeu galera deu certo
Tópico encerrado , respostas não são mais permitidas