INSERT INTO

JPAULO101 21/05/2015 17:43:35
#446867
Olá pessoa, tudo bem. Alguém poderia me da uma força na instrução Insert Into com banco de dados Firebird. Pois estou usando esta instrução abaixo, mais está dando erro como mostra na figura.

Conexão com banco

Public conexao As New ADODB.Connection [ô]variavel objeto de controle do banco de dado como o data
Public rst_conexao As New ADODB.Recordset [ô]recordset da tabela
Function Conectar()
On Error GoTo erro

conexao.ConnectionString = [Ô]DRIVER=Firebird/InterBase(r) driver;[Ô] & _
[Ô]DBNAME=[Ô] & App.Path & [Ô]\Dados\LAVANDERIA.FDB;[Ô] & _
[Ô]UID=SYSDBA;[Ô] & _
[Ô]PWD=masterkey[Ô]
conexao.Open
Exit Function
erro:
MsgBox [Ô]Impossivel estabelecer conexão com o banco de dados[Ô] + Chr$(13) + [Ô]O Sistema sera finalizado[Ô], vbInformation, App.EXEName
End
End Function

Function Desconectar()
Set conexao = Nothing
Set rst_conexao = Nothing
End Function

Comando Insert Into

Dim sSQL As String
On Error GoTo erro

If Trim(txtNome) = [Ô][Ô] Or Trim(txtCPF) = [Ô][Ô] Then
MsgBox [Ô]Preencha os campos para inclusão do funcionário.[Ô], vbExclamation, [Ô]Campo vazio[Ô]
txtNome.SetFocus
Exit Sub
End If

sSQL = [Ô]INSERT INTO TBLFUNCIONARIO VALUES([Ô]
sSQL = sSQL & txtCodigo.Text & [Ô],[ô][Ô]
sSQL = sSQL & txtNome.Text & [Ô][ô],[ô][Ô]
sSQL = sSQL & txtRG.Text & [Ô][ô],[ô][Ô]
sSQL = sSQL & txtCPF.Text & [Ô][ô],[ô][Ô]
sSQL = sSQL & txtdata_Nascimento.Text & [Ô][ô],[ô][Ô]
sSQL = sSQL & txtData_admissao.Text & [Ô][ô],[ô][Ô]
sSQL = sSQL & txtData_cadastro.Text & [Ô][ô],[ô][Ô]
sSQL = sSQL & txtCTPS.Text & [Ô][ô],[ô][Ô]
sSQL = sSQL & txtSerie.Text & [Ô][ô],[ô][Ô]
sSQL = sSQL & txtTelefone_I.Text & [Ô][ô],[ô][Ô]
sSQL = sSQL & txtTelefone_II.Text & [Ô][ô],[ô][Ô]
sSQL = sSQL & txtCelular.Text & [Ô][ô],[ô][Ô]

conexao.BeginTrans
conexao.Execute sSQL
conexao.CommitTrans

MsgBox [Ô]Registro incluso com sucesso![Ô], vbInformation, [Ô]Cadastro de Equipamento[Ô]

Exit Sub
erro:
conexao.RollbackTrans
MsgBox [Ô]Ocorreu um erro ao gravar o cadastro[Ô] & vbCrLf & Err.Description, vbExclamation, [Ô]Erro[Ô]
JABA 21/05/2015 18:27:52
#446870
Especifique as colunas conforme abaixo:

ex:
insert into TBLFUNCIONARIO (coluna1, coluna2, coluna3, coluna4, coluna5) values ([ô]Rodrigo[ô], [ô]JABA[ô], [ô]TESTANDO[ô], [ô]3231212[ô], [ô]BRASIL[ô])
XLEGENDARY 21/05/2015 20:23:37
#446873
faltam os nomes das colunas mesmo.
Agora me diz uma coisa, eu vejo muita gente programando assim do jeito que está seu código, como vocês conseguem? me da até nervoso de ler isso
não sei porque a maioria passam os valores vazios com [Ô] [Ô] ao invés de usar string.empty
e também não sei porque não gostam de usar parametros ( que são seguros diferente de usar diretamente a string). O seu código ainda consigo ler, tem uns que parece japones de tanta embolação.

Desculpe o desabafo hauahauhauhauh
JPAULO101 22/05/2015 10:04:40
#446919
Pessoal fiz as alterações de acordo as dicas dos colegas, mais ainda continua dando erro.


Private Sub cmdGravar_Click()

Dim sSQL As String
On Error GoTo erro

If Trim(txtNome) = [Ô][Ô] Or Trim(txtRG) = [Ô][Ô] Or Trim(txtCPF) = [Ô][Ô] Then
MsgBox [Ô]Preencha os campos para inclusão do funcionário.[Ô], vbExclamation, [Ô]Campo vazio[Ô]
txtNome.SetFocus
Exit Sub
End If

sSQL = [Ô]INSERT INTO TBLFUNCIONARIO (CODIGO,[Ô]
sSQL = sSQL & [Ô]NOME,[Ô]
sSQL = sSQL & [Ô]RG,[Ô]
sSQL = sSQL & [Ô]CPF,[Ô]
sSQL = sSQL & [Ô]DTNASCIMENTO,[Ô]
sSQL = sSQL & [Ô]DTADMISSAO,[Ô]
sSQL = sSQL & [Ô]DTCADASTRO ,[Ô]
sSQL = sSQL & [Ô]CTPS,[Ô]
sSQL = sSQL & [Ô]SERIE,[Ô]
sSQL = sSQL & [Ô]TELEFONE1 ,[Ô]
sSQL = sSQL & [Ô]TELEFONE2 ,[Ô]
sSQL = sSQL & [Ô]CELULAR,[Ô]
sSQL = sSQL & [Ô]CARGO,[Ô]
sSQL = sSQL & [Ô]SETOR,[Ô]
sSQL = sSQL & [Ô]EMAIL,[Ô]
sSQL = sSQL & [Ô]RAMO,[Ô]
sSQL = sSQL & [Ô]CEP,[Ô]
sSQL = sSQL & [Ô]LOGRADOURO,[Ô]
sSQL = sSQL & [Ô]TIPOVIA,[Ô]
sSQL = sSQL & [Ô]MUNICIPIO,[Ô]
sSQL = sSQL & [Ô]NUMERO,[Ô]
sSQL = sSQL & [Ô]BAIRRO,[Ô]
sSQL = sSQL & [Ô]COMPLEMENTO,[Ô]
sSQL = sSQL & [Ô]UF,[Ô]
sSQL = sSQL & [Ô]CIDADE,[Ô]
sSQL = sSQL & [Ô]STATUS,[Ô]
sSQL = sSQL & [Ô]E1,[Ô]
sSQL = sSQL & [Ô]E2,[Ô]
sSQL = sSQL & [Ô]S1,[Ô]
sSQL = sSQL & [Ô]S2,[Ô]
sSQL = sSQL & [Ô]SEGUNDA,[Ô]
sSQL = sSQL & [Ô]TERCA,[Ô]
sSQL = sSQL & [Ô]QUARTA,[Ô]
sSQL = sSQL & [Ô]QUINTA,[Ô]
sSQL = sSQL & [Ô]SEXTA,[Ô]
sSQL = sSQL & [Ô]SABADO,[Ô]
sSQL = sSQL & [Ô]DOMINGO,[Ô]
sSQL = sSQL & [Ô]CODBARRA VALUES ( [Ô]

sSQL = sSQL & [Ô][ô][Ô] & txtCodigo.Text & [Ô][ô],[Ô]
sSQL = sSQL & txtNome.Text & [Ô][ô],[ô][Ô]
sSQL = sSQL & txtRG.Text & [Ô][ô],[ô][Ô]
sSQL = sSQL & txtCPF.Text & [Ô][ô],[ô][Ô]
sSQL = sSQL & txtdata_nascimento.Text & [Ô][ô],[ô][Ô]
sSQL = sSQL & txtData_admissao.Text & [Ô][ô],[ô][Ô]
sSQL = sSQL & txtData_cadastro.Text & [Ô][ô],[ô][Ô]
sSQL = sSQL & txtCTPS.Text & [Ô][ô],[ô][Ô]
sSQL = sSQL & txtSerie.Text & [Ô][ô],[ô][Ô]
sSQL = sSQL & txtTelefone1.Text & [Ô][ô],[ô][Ô]
sSQL = sSQL & txtTelefone2.Text & [Ô][ô],[ô][Ô]
sSQL = sSQL & txtCelular.Text & [Ô][ô],[ô][Ô]
sSQL = sSQL & CboCargo.Text & [Ô][ô],[ô][Ô]
sSQL = sSQL & txtSetor.Text & [Ô][ô],[ô][Ô]
sSQL = sSQL & txtEmail.Text & [Ô][ô],[ô][Ô]
If OptAtivo.Value = True Then sSQL = sSQL & [Ô]TRUE,[Ô] Else sSQL = sSQL & [Ô]FALSE,[Ô]
If OptInativo.Value = True Then sSQL = sSQL & [Ô]TRUE,[ô][Ô] Else sSQL = sSQL & [Ô]FALSE,[ô][Ô]
sSQL = sSQL & txtcep.Text & [Ô][ô],[ô][Ô]
sSQL = sSQL & CboTipo.Text & [Ô][ô],[ô][Ô]
sSQL = sSQL & txtlogradouro.Text & [Ô][ô],[ô][Ô]
sSQL = sSQL & txtmunicipio.Text & [Ô][ô],[ô][Ô]
sSQL = sSQL & txtnumero.Text & [Ô][ô],[ô][Ô]
sSQL = sSQL & txtbairro.Text & [Ô][ô],[ô][Ô]
sSQL = sSQL & txtcomplemento.Text & [Ô][ô],[ô][Ô]
sSQL = sSQL & txtuf.Text & [Ô][ô],[ô][Ô]
sSQL = sSQL & txtcidade.Text & [Ô][ô],[ô][Ô]
sSQL = sSQL & txtentrada1.Text & [Ô][ô],[ô][Ô]
sSQL = sSQL & txtentrada2.Text & [Ô][ô],[ô][Ô]
sSQL = sSQL & txtsaida1.Text & [Ô][ô],[ô][Ô]
sSQL = sSQL & txtsaida2.Text & [Ô][ô],[ô][Ô]

If Check1.Value = 1 Then sSQL = sSQL & [Ô]True[Ô] & [Ô],[Ô] Else sSQL = sSQL & [Ô]False[Ô] & [Ô],[Ô]
If Check2.Value = 1 Then sSQL = sSQL & [Ô]True[Ô] & [Ô],[Ô] Else sSQL = sSQL & [Ô]False[Ô] & [Ô],[Ô]
If Check3.Value = 1 Then sSQL = sSQL & [Ô]True[Ô] & [Ô],[Ô] Else sSQL = sSQL & [Ô]False[Ô] & [Ô],[Ô]
If Check4.Value = 1 Then sSQL = sSQL & [Ô]True[Ô] & [Ô],[Ô] Else sSQL = sSQL & [Ô]False[Ô] & [Ô],[Ô]
If Check5.Value = 1 Then sSQL = sSQL & [Ô]True[Ô] & [Ô],[Ô] Else sSQL = sSQL & [Ô]False[Ô] & [Ô],[Ô]
If Check6.Value = 1 Then sSQL = sSQL & [Ô]True[Ô] & [Ô],[Ô] Else sSQL = sSQL & [Ô]False[Ô] & [Ô],[Ô]
If Check7.Value = 1 Then sSQL = sSQL & [Ô]True[Ô] & [Ô],[Ô] Else sSQL = sSQL & [Ô]False[Ô] & [Ô],[Ô]

sSQL = sSQL & txtbarra.Text & [Ô][ô])[Ô]


conexao.BeginTrans
conexao.Execute sSQL
conexao.CommitTrans


MsgBox [Ô]Registro incluso com sucesso![Ô], vbInformation, [Ô]Cadastro de Funcionário[Ô]

Exit Sub
erro:
conexao.RollbackTrans
MsgBox [Ô]Ocorreu um erro ao gravar o cadastro[Ô] & vbCrLf & Err.Description, vbExclamation, [Ô]Erro[Ô]
End Sub

Estrutura da base de dados no IBExpert

CREATE TABLE TBLFUNCIONARIO (
CODIGO INTEGER NOT NULL,
NOME VARCHAR(50),
RG VARCHAR(15),
CPF VARCHAR(15),
DTNASCIMENTO TIMESTAMP,
DTADMISSAO TIMESTAMP,
DTCADASTRO TIMESTAMP,
CTPS VARCHAR(20),
SERIE VARCHAR(5),
TELEFONE1 VARCHAR(14),
TELEFONE2 VARCHAR(14),
CELULAR VARCHAR(14),
CARGO VARCHAR(30),
SETOR VARCHAR(40),
EMAIL VARCHAR(40),
CEP VARCHAR(50),
LOGRADOURO VARCHAR(40),
TIPOVIA VARCHAR(10),
MUNICIPIO VARCHAR(40),
NUMERO VARCHAR(10),
BAIRRO VARCHAR(40),
COMPLEMENTO VARCHAR(30),
UF VARCHAR(2),
CIDADE VARCHAR(30),
STATUS FLOAT,
E1 TIMESTAMP,
S1 TIMESTAMP,
E2 TIMESTAMP,
S2 TIMESTAMP,
SEGUNDA CHAR(1),
TERCA CHAR(1),
QUARTA CHAR(1),
QUINTA CHAR(1),
SEXTA CHAR(1),
SABADO CHAR(1),
DOMINGO CHAR(1),
CODBARRA FLOAT
);
JABA 22/05/2015 14:40:54
#446930
Você não fechou os parêntesis das colunas. Faça assim:

sSQL = sSQL & [Ô]CODBARRA ) VALUES ( [Ô]



JPAULO101 22/05/2015 16:29:27
#446932
Obrigada Jaba pela dica, mais ainda continua dando erro, caso alguém possa me ajudar segue anexo exemplo. Fico grato com ajuda de todos.
JABA 22/05/2015 16:34:32
#446933
Qual foi o erro gerado agora?
JPAULO101 22/05/2015 16:48:22
#446934
Olá Jaba, segue tela do erro.

JPAULO101 22/05/2015 16:50:34
#446935
Desculpe postei a tela errada, segue tela como novo erro.

JABA 22/05/2015 17:47:17
#446938
Agora o erro está sendo com as aspas ou virgulas. Pelo que verifiquei aqui, faltou uma aspas simples para o valor do campo Nome, por isso coloquei uma aspas simples no final do txtCodigo, e aí ficou assim:

sSQL = sSQL & [Ô][ô][Ô] & txtCodigo.Text & [Ô] [ô],[ô] [Ô]

sSQL = sSQL & txtNome.Text & [Ô] [ô],[ô] [Ô]

Um outro erro também é que o valor para o campo de Status (abaixo de cidade) não foi colocado. Com certeza deve ter outros erros parecidos, o lance é examinar um por um e ir consertando.

Nessa parte aqui baixo, como os campos exige apenas um caractere, então acho que voce deveria trocar os valores para numeros:

If OptAtivo.Value = True Then sSQL = sSQL & [Ô] [ô]1[ô], [Ô] Else sSQL = sSQL & [Ô] [ô]0[ô], [Ô]
If OptInativo.Value = True Then sSQL = sSQL & [Ô] [ô]1[ô], [Ô] Else sSQL = sSQL & [Ô] [ô]0[ô], [Ô]

OBS: 1 = Verdadeiro e 0 = Falso. Coloquei eles com aspas simples, talvez funcione sem elas.
JPAULO101 23/05/2015 19:18:46
#446951
Boa noite pessoa,alguém teria mais alguma sugestão, pois ainda não consegui resolver esse problema. Fico grato.
Página 1 de 3 [22 registro(s)]
Tópico encerrado , respostas não são mais permitidas