GRAVAR REGISTRO NO FIREBIRD
ola amigos do VBMania, preciso da ajuda de vcs novamente, nao estou conseguindo gravar um registro numa tabela do FIREBIRD, segue a rotina eo erro logo abaixo:
Dim sql As Variant
sql = [Ô]SELECT MAX(CPROD) FROM INVENTARIO[Ô]
Set qryGERAL = conn.Execute(sql)
sql = [Ô]EXECUTE PROCEDURE ASS_INVENTARIO[Ô]
sql = sql + [Ô]([Ô] + W_Codigo + [Ô],[Ô]
sql = sql + W_Descricao + [Ô],[Ô]
sql = sql + W_Ean + [Ô],[Ô]
sql = sql + W_Ncm + [Ô],[Ô]
sql = sql + W_Medida + [Ô],[Ô]
sql = sql + W_Estoque + [Ô],[Ô]
sql = sql + W_Unitario + [Ô],[Ô]
sql = sql + [Ô]0[Ô] + [Ô],[Ô]
sql = sql + [Ô]Null[Ô] + [Ô],[Ô]
sql = sql + W_Total + [Ô],[Ô]
sql = sql + [Ô]0[Ô] + [Ô],[Ô]
sql = sql + [Ô]null);[Ô]
conn.Execute (sql)
conn.CommitTrans
ERRO:
run-time error: (-214721.....
dynamic sql error
sql error code = -104
token unknown - line 1, column 42
N
Dim sql As Variant
sql = [Ô]SELECT MAX(CPROD) FROM INVENTARIO[Ô]
Set qryGERAL = conn.Execute(sql)
sql = [Ô]EXECUTE PROCEDURE ASS_INVENTARIO[Ô]
sql = sql + [Ô]([Ô] + W_Codigo + [Ô],[Ô]
sql = sql + W_Descricao + [Ô],[Ô]
sql = sql + W_Ean + [Ô],[Ô]
sql = sql + W_Ncm + [Ô],[Ô]
sql = sql + W_Medida + [Ô],[Ô]
sql = sql + W_Estoque + [Ô],[Ô]
sql = sql + W_Unitario + [Ô],[Ô]
sql = sql + [Ô]0[Ô] + [Ô],[Ô]
sql = sql + [Ô]Null[Ô] + [Ô],[Ô]
sql = sql + W_Total + [Ô],[Ô]
sql = sql + [Ô]0[Ô] + [Ô],[Ô]
sql = sql + [Ô]null);[Ô]
conn.Execute (sql)
conn.CommitTrans
ERRO:
run-time error: (-214721.....
dynamic sql error
sql error code = -104
token unknown - line 1, column 42
N
Será que não tá faltando aspas simples na concatenação onde é texto?
leandro, coloquei as aspas deixei assim agora, ainda da o erro no final da mensagem.
sql = [Ô]INSERT INTO INVENTARIO VALUES ([Ô]
sql = sql + CStr(W_Codigo) + [Ô],[Ô]
sql = sql + [Ô][ô][Ô] + W_Descricao + [Ô][ô][Ô] + [Ô],[Ô]
sql = sql + CStr(W_Ean) + [Ô],[Ô]
sql = sql + CStr(W_Ncm) + [Ô],[Ô]
sql = sql + [Ô][ô][Ô] + W_Medida + [Ô][ô][Ô] + [Ô],[Ô]
sql = sql + CStr(W_Estoque) + [Ô],[Ô]
sql = sql + CStr(W_Unitario) + [Ô],[Ô]
sql = sql + [Ô]0[Ô] + [Ô],[Ô]
sql = sql + [Ô]Null[Ô] + [Ô],[Ô]
sql = sql + CStr(W_Total) + [Ô],[Ô]
sql = sql + [Ô]0[Ô] + [Ô],[Ô]
sql = sql + [Ô]null);[Ô]
conn.Execute (sql)
ERRO:- count of read-write columns does not equal count of values
sql = [Ô]INSERT INTO INVENTARIO VALUES ([Ô]
sql = sql + CStr(W_Codigo) + [Ô],[Ô]
sql = sql + [Ô][ô][Ô] + W_Descricao + [Ô][ô][Ô] + [Ô],[Ô]
sql = sql + CStr(W_Ean) + [Ô],[Ô]
sql = sql + CStr(W_Ncm) + [Ô],[Ô]
sql = sql + [Ô][ô][Ô] + W_Medida + [Ô][ô][Ô] + [Ô],[Ô]
sql = sql + CStr(W_Estoque) + [Ô],[Ô]
sql = sql + CStr(W_Unitario) + [Ô],[Ô]
sql = sql + [Ô]0[Ô] + [Ô],[Ô]
sql = sql + [Ô]Null[Ô] + [Ô],[Ô]
sql = sql + CStr(W_Total) + [Ô],[Ô]
sql = sql + [Ô]0[Ô] + [Ô],[Ô]
sql = sql + [Ô]null);[Ô]
conn.Execute (sql)
ERRO:- count of read-write columns does not equal count of values
simples, vc está especificando mais valores do que colunas no teu insert. vai ser necessário. Especifique todas as colunas correspondentes a cada valor que vc está querendo inserir entre INVENTARIO e VALUES
sql = [Ô]INSERT INTO INVENTARIO (COLUNA1,COLUNA2,COLUNA3 ....) VALUES ([Ô]
sql = sql + CStr(W_Codigo) + [Ô],[Ô]
sql = sql + [Ô][ô][Ô] + W_Descricao + [Ô][ô][Ô] + [Ô],[Ô]
sql = sql + CStr(W_Ean) + [Ô],[Ô]
sql = sql + CStr(W_Ncm) + [Ô],[Ô]
sql = sql + [Ô][ô][Ô] + W_Medida + [Ô][ô][Ô] + [Ô],[Ô]
sql = sql + CStr(W_Estoque) + [Ô],[Ô]
sql = sql + CStr(W_Unitario) + [Ô],[Ô]
sql = sql + [Ô]0[Ô] + [Ô],[Ô]
sql = sql + [Ô]Null[Ô] + [Ô],[Ô]
sql = sql + CStr(W_Total) + [Ô],[Ô]
sql = sql + [Ô]0[Ô] + [Ô],[Ô]
sql = sql + [Ô]null);[Ô]
leandro eu mudei pra esse formato, nao deu erro mas tb nao gravou na tabela
sql = [Ô]INSERT INTO INVENTARIO (cprod, xprod, ean, ncm, und, qtd, unt,
picms, cod_part, vl_item, ind_prop, cod_cta) values (CStr(W_Codigo),[Ô]
[ô][Ô] + W_Descricao + [Ô][ô][Ô],CStr(W_Ean),CStr(W_Ncm), [Ô][ô][Ô] + W_Medida + [Ô][ô][Ô],
CStr(W_Estoque),CStr(W_Unitario),[Ô][ô]0[ô][Ô],[Ô][ô]0[ô][Ô],CStr(W_Total),[Ô][ô]0[ô][Ô],[Ô][ô]0[ô][Ô])[Ô]
sql = [Ô]INSERT INTO INVENTARIO (cprod, xprod, ean, ncm, und, qtd, unt,
picms, cod_part, vl_item, ind_prop, cod_cta) values (CStr(W_Codigo),[Ô]
[ô][Ô] + W_Descricao + [Ô][ô][Ô],CStr(W_Ean),CStr(W_Ncm), [Ô][ô][Ô] + W_Medida + [Ô][ô][Ô],
CStr(W_Estoque),CStr(W_Unitario),[Ô][ô]0[ô][Ô],[Ô][ô]0[ô][Ô],CStr(W_Total),[Ô][ô]0[ô][Ô],[Ô][ô]0[ô][Ô])[Ô]
leandro tenho q usar o comando begintrans e o committrans pra isso dar certo, mas nao sei a sintaxe de como usar
pessoallll
ninguem ai usa o firebird com vb6 ????
ninguem ai usa o firebird com vb6 ????
Citação::
leandro tenho q usar o comando begintrans e o committrans pra isso dar certo, mas nao sei a sintaxe de como usar
é o modo correto co o Firebird, por causa do controle transacional. Vc tem que fazer assim:
objetoConnection.BeginTrans
execucao query
objetoConnection.CommitTrans
Eu fiz um programa pra ajudar nestes insert da vida. Ele me ajuda muito
AuditorSQL
Se puder me passe o conteudo da váriavel SQL (SQL= ....) para eu processar aqui
[][ô]s
André
AuditorSQL
Se puder me passe o conteudo da váriavel SQL (SQL= ....) para eu processar aqui
[][ô]s
André
Tanto grava no banco sem ou com
BeginTrans , CommitTrans
Private Sub Command11_Click()
Dim W_Descricao As String
Dim W_Codigo As Integer
W_Codigo = 5
W_Descricao = [Ô]Palel[Ô]
cn.BeginTrans
Dim sql As Variant
sql = [Ô]INSERT INTO Areas VALUES ([Ô]
sql = sql + CStr(W_Codigo) + [Ô],[Ô]
sql = sql + [Ô][ô][Ô] + W_Descricao + [Ô][ô][Ô] + [Ô])[Ô]
cn.Execute (sql)
cn.CommitTrans
End Sub
Um teste simples que fiz aqui.
BeginTrans , CommitTrans
Private Sub Command11_Click()
Dim W_Descricao As String
Dim W_Codigo As Integer
W_Codigo = 5
W_Descricao = [Ô]Palel[Ô]
cn.BeginTrans
Dim sql As Variant
sql = [Ô]INSERT INTO Areas VALUES ([Ô]
sql = sql + CStr(W_Codigo) + [Ô],[Ô]
sql = sql + [Ô][ô][Ô] + W_Descricao + [Ô][ô][Ô] + [Ô])[Ô]
cn.Execute (sql)
cn.CommitTrans
End Sub
Um teste simples que fiz aqui.
oi andre, a sql q fiz esta abaixo, tentei executar seu aplicativo mas da run-time error [ô]0[ô].
sql = [Ô]INSERT INTO INVENTARIO (cprod, xprod, ean, ncm, und, qtd, unt, picms, cod_part, vl_item, ind_prop, cod_cta) values (CStr(W_Codigo), W_Descricao, CStr(W_Ean),CStr(W_Ncm), W_Medida, CStr(W_Estoque), CStr(W_Unitario), [ô]0[ô], [ô]0[ô], CStr(W_Total), [ô]0[ô], [ô]0[ô],[ô]);[ô][Ô]
sql = [Ô]INSERT INTO INVENTARIO (cprod, xprod, ean, ncm, und, qtd, unt, picms, cod_part, vl_item, ind_prop, cod_cta) values (CStr(W_Codigo), W_Descricao, CStr(W_Ean),CStr(W_Ncm), W_Medida, CStr(W_Estoque), CStr(W_Unitario), [ô]0[ô], [ô]0[ô], CStr(W_Total), [ô]0[ô], [ô]0[ô],[ô]);[ô][Ô]
Tópico encerrado , respostas não são mais permitidas