ERRO DE SINTAX NO SQL
O Vb não está conseguindo rodar uma inserção num banco Access.
O código é esse:
Insert into tbProduto ( NumIndice, Nome, Local, Unidade_Medicao, Quantidade, QuantidadeAlarme, Orgao_fiscal, Num_Ordem, Validade, Marca ) values ( 1, '1', '2', '3', 4, 5, '6', 7, '8/8/2008', '9' )
Detalhes do banco:
NumIndice - Numero, Nome - Texto, Local - Texto, Unidade_Medicao - Texto, Quantidade - Numero, QuantidadeAlarme - Numero, Orgao_fiscal - Texto, Num_Ordem - Numero, Validade - Texto, Marca - Texto
NumIndice é chave primária e nenhum campo apresenta nenhuma particularidade.
O interessante é que se eu coloco essa linha no próprio Access, ela roda. Tentei usar ainda um outro banco e com outros valores e consegui incluir tb. Com esse banco, consigo alterar, excluir e listar normalmente, só não inclui!
Obrigado pela atenção!!!
O código é esse:
Insert into tbProduto ( NumIndice, Nome, Local, Unidade_Medicao, Quantidade, QuantidadeAlarme, Orgao_fiscal, Num_Ordem, Validade, Marca ) values ( 1, '1', '2', '3', 4, 5, '6', 7, '8/8/2008', '9' )
Detalhes do banco:
NumIndice - Numero, Nome - Texto, Local - Texto, Unidade_Medicao - Texto, Quantidade - Numero, QuantidadeAlarme - Numero, Orgao_fiscal - Texto, Num_Ordem - Numero, Validade - Texto, Marca - Texto
NumIndice é chave primária e nenhum campo apresenta nenhuma particularidade.
O interessante é que se eu coloco essa linha no próprio Access, ela roda. Tentei usar ainda um outro banco e com outros valores e consegui incluir tb. Com esse banco, consigo alterar, excluir e listar normalmente, só não inclui!
Obrigado pela atenção!!!
Dá alguma mensagem de erro?
Pode ser que algum campo seja pequeno para receber alguma dessa informação. A validade, por exemplo.
Como você faz a inserção? é SeuBanco.execute StringAInserir?
Pode ser que algum campo seja pequeno para receber alguma dessa informação. A validade, por exemplo.
Como você faz a inserção? é SeuBanco.execute StringAInserir?
UCX2, verifique se dá mensagem de erro...
pq a primeira vista esta tudo ok...
pra tirar duvidas...faça assim...
monte sua query
na hora de mandar exectar...pegue este valor e jogue na consta em sql do access
e mande rodar...se der certo...
reveja sua conexao com o banco de dados...veja os modos de acesso e permissao que vc colocou.
pq a primeira vista esta tudo ok...
pra tirar duvidas...faça assim...
monte sua query
na hora de mandar exectar...pegue este valor e jogue na consta em sql do access
e mande rodar...se der certo...
reveja sua conexao com o banco de dados...veja os modos de acesso e permissao que vc colocou.
Poste o codigo fonte de como vc está tentando usar o insert, só a
query não adianta para te ajudarmos...
query não adianta para te ajudarmos...
1 - Caso a chave primária seja um autonumerador (como é recomendado), remova esse campo da instrução. Ficará assim:
Insert into tbProduto ( Nome, Local, Unidade_Medicao, Quantidade, QuantidadeAlarme, Orgao_fiscal, Num_Ordem, Validade, Marca ) values ( '1', '2', '3', 4, 5, '6', 7, '8/8/2008', '9' )
2 - Campos do tipo DateTime devem ser gravados no padrão americano, e dependendo do enine de dados, a forma da instrução muda:
Access:
Insert into tbProduto ( Nome, Local, Unidade_Medicao, Quantidade, QuantidadeAlarme, Orgao_fiscal, Num_Ordem, Validade, Marca ) values ( '1', '2', '3', 4, 5, '6', 7, #8/8/2008#, '9' )
SQL Server:
Insert into tbProduto ( Nome, Local, Unidade_Medicao, Quantidade, QuantidadeAlarme, Orgao_fiscal, Num_Ordem, Validade, Marca ) values ( '1', '2', '3', 4, 5, '6', 7, '8/8/2008', '9' )
Oracle:
Insert into tbProduto ( Nome, Local, Unidade_Medicao, Quantidade, QuantidadeAlarme, Orgao_fiscal, Num_Ordem, Validade, Marca ) values ( '1', '2', '3', 4, 5, '6', 7, TO_DATE('DD/MM/YYYY','8/8/2008'), '9' )
3 - Com relação aos demais campos, há vários campos que aparentam ser numéricos, ok? Neste caso, qual a razão de estarem sendo transferidos ao banco como texto?
Insert into tbProduto ( Nome, Local, Unidade_Medicao, Quantidade, QuantidadeAlarme, Orgao_fiscal, Num_Ordem, Validade, Marca ) values ( '1', '2', '3', 4, 5, '6', 7, '8/8/2008', '9' )
2 - Campos do tipo DateTime devem ser gravados no padrão americano, e dependendo do enine de dados, a forma da instrução muda:
Access:
Insert into tbProduto ( Nome, Local, Unidade_Medicao, Quantidade, QuantidadeAlarme, Orgao_fiscal, Num_Ordem, Validade, Marca ) values ( '1', '2', '3', 4, 5, '6', 7, #8/8/2008#, '9' )
SQL Server:
Insert into tbProduto ( Nome, Local, Unidade_Medicao, Quantidade, QuantidadeAlarme, Orgao_fiscal, Num_Ordem, Validade, Marca ) values ( '1', '2', '3', 4, 5, '6', 7, '8/8/2008', '9' )
Oracle:
Insert into tbProduto ( Nome, Local, Unidade_Medicao, Quantidade, QuantidadeAlarme, Orgao_fiscal, Num_Ordem, Validade, Marca ) values ( '1', '2', '3', 4, 5, '6', 7, TO_DATE('DD/MM/YYYY','8/8/2008'), '9' )
3 - Com relação aos demais campos, há vários campos que aparentam ser numéricos, ok? Neste caso, qual a razão de estarem sendo transferidos ao banco como texto?
a resposta para esse erro é muito simples: o nome de um dos campos possui uma palavra reservada é por isso que não executa a instrução
Local --> Palavra reservada
você terá que mudar o nome do campo ou acrescentar colchetes
espero ter ajudado
Insert into tbProduto ( Nome, Local, Unidade_Medicao, Quantidade, QuantidadeAlarme, Orgao_fiscal, Num_Ordem, Validade, Marca ) values ( '1', '2', '3', 4, 5, '6', 7, #8/8/2008#, '9' )
Local --> Palavra reservada
você terá que mudar o nome do campo ou acrescentar colchetes
Insert into tbProduto ( Nome, [Local], Unidade_Medicao, Quantidade, QuantidadeAlarme, Orgao_fiscal, Num_Ordem, Validade, Marca ) values ( '1', '2', '3', 4, 5, '6', 7, #8/8/2008#, '9' )
espero ter ajudado
Desculpa a demora da resposta, pessoal. Estava ausente.
Era isso mesmo, FFCOUTO. Foi só mudar o nome que funcionou.. Muito obrigado mesmo!
Agora, só não entendi o porque de usar os colchetes.. hehe
Valeu pessoal pela ajuda!!
Era isso mesmo, FFCOUTO. Foi só mudar o nome que funcionou.. Muito obrigado mesmo!
Agora, só não entendi o porque de usar os colchetes.. hehe
Valeu pessoal pela ajuda!!
Os colchetes como citado pelo colega ffcouto são apenas para diferir da palavra reservada "local"
local é diferente de [local]
Abraço.
local é diferente de [local]
Abraço.
Mas acrescentando os colchetes, eu vou precisar mudar o nome do campo na tabela também?
Quais outras palavras eu não posso usar como nome de campos?
Obrigado.
Quais outras palavras eu não posso usar como nome de campos?
Obrigado.
O nome do campo na tabela não precisa ser alterado não.
os colchetes servem justamente para isso, outro exemplo sao campos com espaços. por ex:
coluna --> qtd dependentes
na construcão de uma sintaxe, você teria de usar assim : [qtd dependentes]
Fui claro ???
os colchetes servem justamente para isso, outro exemplo sao campos com espaços. por ex:
coluna --> qtd dependentes
na construcão de uma sintaxe, você teria de usar assim : [qtd dependentes]
Fui claro ???
Super claro!
Obrigado pela atenção!
[S79]
Obrigado pela atenção!
[S79]
Tópico encerrado , respostas não são mais permitidas