GRAVAR DADOS VB6 FIREBIRD

ADRIANOM 07/01/2014 00:37:18
#432713
Anexo o aviso do erro ...



Já fiz esta pergunta à 48 meses atrás, porém tentando estudar não consegui corrigir.

Assim, onde estou errando? Era para salvar o registro mas não salva... onde está o erro?



Citação:


Sub Salvar()

Dim dAdmissao As String
Dim dDemissao As String
Dim dTel As String
Dim dCel As String

If txtNome.Text = [Ô][Ô] Then
MsgBox [Ô]Favor preencher o campo [ô]NOME[ô] deste módulo.[Ô], vbCritical, [Ô]GWorks Softs[Ô]
txtNome.SetFocus
Exit Sub

Else

If txtAdmissao.Text = [Ô]__/__/____[Ô] Then
dAdmissao = [Ô][Ô]
End If
If txtDemissao.Text = [Ô]__/__/____[Ô] Then
dDemissao = [Ô][Ô]
End If
If txtTel.Text = [Ô](__)____-____[Ô] Then
dTel = [Ô][Ô]
End If
If txtCel.Text = [Ô](__)____-____[Ô] Then
dCel = [Ô][Ô]
End If

[ô]Salva os dados
sSQL = sSQL & [Ô][Ô]
sSQL = sSQL & [Ô]INSERT INTO FUNCIONARIOS([Ô]
sSQL = sSQL & [Ô]CODIGO,NOME,[Ô]
sSQL = sSQL & [Ô]ENDERECO,[Ô]
sSQL = sSQL & [Ô]NUMERO,BAIRRO,CIDADE,[Ô]
sSQL = sSQL & [Ô]TELEFONE,CELULAR,[Ô]
sSQL = sSQL & [Ô]ADIMISSAO,DEMISSAO,ATIVO,OBSERVACAO)[Ô]
sSQL = sSQL & [Ô]VALUES([Ô]
sSQL = sSQL & [Ô][Ô] & txtCodigo.Text & [Ô],[Ô]
sSQL = sSQL & [Ô][ô][Ô] & txtNome.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô][ô][Ô] & cboEndereco.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô][ô][Ô] & txtNumero.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô][ô][Ô] & cboBairro.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô][ô][Ô] & cboCidade.Text & [Ô][ô],[Ô]
sSQL = sSQL & [Ô][ô][Ô] & dTel & [Ô][ô],[Ô]
sSQL = sSQL & [Ô][ô][Ô] & dCel & [Ô][ô],[Ô]
sSQL = sSQL & [Ô][ô][Ô] & dAdmissao & [Ô][ô],[Ô]
sSQL = sSQL & [Ô][ô][Ô] & dDemissao & [Ô][ô],[Ô]
sSQL = sSQL & [Ô][ô][Ô] & IIf(chkFuncionario.Value = vbChecked, 1, 0) & [Ô],[Ô]
sSQL = sSQL & [Ô][ô][Ô] & txtObservacao.Text & [Ô][ô])[Ô]

With ConConexao
.ActiveConnection = CONEXAO
.CommandType = adCmdText
.CommandText = sSQL
.Execute
End With


[ô]Altera o campo seqlogin
Set RSSEQ = New ADODB.Recordset
RSSEQ.Open [Ô]SELECT * FROM SEQ[Ô], CNN, adOpenStatic, adLockOptimistic
SQL = [Ô]UPDATE SEQ Set SEQFUNCIONARIOS=[ô][Ô] & txtCodigo & [Ô][ô][Ô]
CNN.BeginTrans
CNN.Execute SQL
CNN.CommitTrans

frmFuncionarios.LoadEntries
Unload Me

End If



End Sub



Alterei em 07/01/2014 mas o erro continua.

KERPLUNK 07/01/2014 09:17:25
#432720
Use parametrização, não concatenação.
ADRIANOM 07/01/2014 09:53:07
#432724
Citação:

:
Use parametrização, não concatenação.



Não entendi!
KERPLUNK 07/01/2014 10:06:36
#432725
Veja aqui como funciona. E já adianto, a linguagem nos exemplos lá é C#, mas não faz diferença, o que você tem que entender é a mecânica da coisa.
ADRIANOM 07/01/2014 10:08:33
#432726
Queria ver onde estou errado no código que postei.. pois anteriormente (em aplicações antigas ) estava funcionando perfeitamente...
KERPLUNK 07/01/2014 10:25:47
#432727
Bem, para ver onde está o token desconhecido(o seu erro), após toda a sql estar pronta e antes de executar, verifique o que tem na coluna 359, que caracter está lá, este é o problema.
KERPLUNK 07/01/2014 10:28:29
#432728
Complementando, problema esse que não ocorreria usando parametrização nas suas queries ao invés de concatenar. E ainda por cima, eliminaria o problema de SQL Injection, ao qual sua aplicação, se estiver assim mesmo como você postou, está totalmente vulnerável.
MARCELOKROL 07/01/2014 11:46:00
#432731
Olha primeiramente, use o método que o Kerplunk citou, é mais seguro para a aplicação...

Bom, com relação ao erro, eu apostaria nas suas condições [Ô]VBA.IIf[Ô] vi o código rapidamente, e creio que tem um erro na concatenação, mais é fácil de resolver, faz um breakpoint na linha .CommandText = sSQL e veja o conteúdo da variável sSQL. Se não encontrar o erro, pegue o conteúdo da variável e tente executar a sql no iBexpert ou no seu gerenciador do firebird que utiliza, que provavelmente lá ele ira citar aonde esta o erro.

boa sorte e ate mais
ADRIANOM 07/01/2014 13:15:58
#432734
O VBA.IIf... é a alternativa que tive de fazer para utilizar uma ocx e uma dll que possivelmente foi programada de maneira amadora e vem causando uma série de conflitos nas demais bibliotecas... como não encontrei outros componentes que pudessem substituí-la
ADRIANOM 07/01/2014 15:01:51
#432739
Influencia eu estar utilizando o modo de compatibilidade do windows 7 x64 para rodar o Ibexpert + Firebird + VB6 32 bits?
FILMAN 07/01/2014 21:00:58
#432765
Resposta escolhida
Tente verificando essa linha

sSQL = sSQL & [Ô][ô][Ô] & IIf(chkFuncionario.Value = vbChecked, 1, 0) & [Ô],[Ô]


Repare que não fechou a aspas simples

corrija isso e veja se funciona!

Quanto Windows 7 64 eu utilizo aqui com vb6 32 e firebird 64 e ibExpert 32 e funciona normalmente

Creio que o Driver ODBC esteja instalado corretamente para a versão 64 bits do windows

Espero ter ajudado, mas caso não resolva poste a estrutua de sua tabela
Página 1 de 2 [14 registro(s)]
Tópico encerrado , respostas não são mais permitidas