Erro com SQL
Galera, to tentando executar esse SQL mas ta dando erro:
Código:
Erro:
[URL=http://img235.imageshack.us/my.php?image=errofs7.jpg][img:ecad5ea488]http://img235.imageshack.us/img235/4198/errofs7.th.jpg[/img:ecad5ea488][/URL]
O edit1.text esta igual a 2, e o edit2.text esta igual a Teste.
Alguem pode me ajudar?
Estou usando um IBdatabase, um IBtransiction , uma IBquery e um Datasource
Código:
procedure TFrmCadastro.BtnSalvarTipoClick(Sender: TObject); begin qrycadcategoria.Close; sql := ´INSERT INTO CLASSIFICACAO (CDCLASSIFICACAO, NMCLASSIFICACAO)´+ ´ VALUES (´ + edit1.Text + ´,´+ ´"´ + edit2.Text +´" )´; ibqrycadcategoria.SQl.text:= sql; ibqrycadcategoria.Active:= true; ibqrycadcategoria.Open; end; end.
Erro:
[URL=http://img235.imageshack.us/my.php?image=errofs7.jpg][img:ecad5ea488]http://img235.imageshack.us/img235/4198/errofs7.th.jpg[/img:ecad5ea488][/URL]
O edit1.text esta igual a 2, e o edit2.text esta igual a Teste.
Alguem pode me ajudar?
Estou usando um IBdatabase, um IBtransiction , uma IBquery e um Datasource
Gabriel301
Curtidas 0
Respostas
Ferreia2
17/07/2008
Se não me falha a memória vc precisa colocar [b:3c7c855f40]ibqrycadcategoria.Execsql e não ibqrycadcategoria.Open;[/b:3c7c855f40]
GOSTEI 0
Gabriel301
17/07/2008
Substituindo a linha ibqrycadcategoria.open;
poribqrycadcategoria.execsql
Continua dando o mesmo erro!
poribqrycadcategoria.execsql
Continua dando o mesmo erro!
GOSTEI 0
Joaoshi
17/07/2008
Colega, a instrução parece estar correta, delete a linha [b:d981f63814]ibqrycadcategoria.Active:= true[/b:d981f63814].
Espero ter ajudado.
procedure TFrmCadastro.BtnSalvarTipoClick(Sender: TObject); begin qrycadcategoria.Close; sql := ´INSERT INTO CLASSIFICACAO (CDCLASSIFICACAO, NMCLASSIFICACAO)´+ ´ VALUES (´ + edit1.Text + ´,´+ ´"´ + edit2.Text +´" )´; ibqrycadcategoria.SQl.text:= sql; ibqrycadcategoria.Active:= true; // apague esta linha ibqrycadcategoria.execsql; end;
Espero ter ajudado.
GOSTEI 0
Gabriel301
17/07/2008
Continua dando o mesmo erro.
No erro, ele fala que a coluna é desconhecida. Só que parece que ele está colocando como o nome da coluna o valor do edit2.text.
No erro, ele fala que a coluna é desconhecida. Só que parece que ele está colocando como o nome da coluna o valor do edit2.text.
GOSTEI 0
Joaoshi
17/07/2008
Colega, por que [b:f7bcbda1e9]qrycadcategoria[/b:f7bcbda1e9] e [b:f7bcbda1e9]ibqrycadcategoria[/b:f7bcbda1e9] ?
Se não tiver problema com os nomes dos componentes, coloque um edit no formulário e veja o que esta sendo carregado no sql.
Edit.Text := sql;
Espero ter ajudado.
Se não tiver problema com os nomes dos componentes, coloque um edit no formulário e veja o que esta sendo carregado no sql.
Edit.Text := sql;
Espero ter ajudado.
GOSTEI 0
Gabriel301
17/07/2008
O nome dos componentes estão certos, é que na hora de postar devo ter apagado sem querer.
O conteúdo do SLQ é esse:
INSERT INTO CLASSIFICACAO (CDCLASSIFICACAO, NMCLASSIFICACAO) VALUES (2,´Teste´ )
Lembrando que CDCLASSIFICACAO é inteiro e NMCLASSIFICACAO é String.
O conteúdo do SLQ é esse:
INSERT INTO CLASSIFICACAO (CDCLASSIFICACAO, NMCLASSIFICACAO) VALUES (2,´Teste´ )
Lembrando que CDCLASSIFICACAO é inteiro e NMCLASSIFICACAO é String.
GOSTEI 0
Joaoshi
17/07/2008
Colega, você poderia postar esta parte do codigo da forma que esta no seu programa ?
GOSTEI 0
Gabriel301
17/07/2008
Olha, vô colocar o fonte aqui pra Download, porque talvez seja algum erro na configuraçao dos componentes.
Alguém dá uma olhada pra mim?
A unit é Ucadastro, e a aba do formulário é Tipos de Materiais
Fonte:
http://rapidshare.com/files/130506443/Prot_tipo.rar.html
Obrigado.
Alguém dá uma olhada pra mim?
A unit é Ucadastro, e a aba do formulário é Tipos de Materiais
Fonte:
http://rapidshare.com/files/130506443/Prot_tipo.rar.html
Obrigado.
GOSTEI 0
Joaoshi
17/07/2008
Colega, imagino que sua rotina deveria ser assim:
Precisa verificar se não esta utilizando um componente com campos já criados.
Lamento não poder ajudar mais.
procedure TFrmCadastro.BtnSalvarTipoClick(Sender: TObject); begin ibqrycadcategoria.Close; ibqrycadcategoria.sql.clear; sql := ´INSERT INTO CLASSIFICACAO (CDCLASSIFICACAO, NMCLASSIFICACAO)´+ ´ VALUES (´ + edit1.Text + ´,´+ ´"´ + edit2.Text +´" )´; ibqrycadcategoria.SQl.text:= sql; ibqrycadcategoria.ExecSql; end;
Precisa verificar se não esta utilizando um componente com campos já criados.
Lamento não poder ajudar mais.
GOSTEI 0
Gabriel301
17/07/2008
Como assim campos já criados?
GOSTEI 0
Mazzi
17/07/2008
Se nao deu certo nenhuma das alternativas acima, verifique:
-nome dos campos,
-integridade da tabela e de algum relacionamento;
e tente passar a string com o uso de QuotedStr
ex:
Insert into Tabela (codigo, nome) Values(´+txtcodigo.txt+´,´+ Quotedstr(txtNome.text)+ ´)´ );
Ou passe por paramentros
Insert into tabela (codigo, nome) Values (:pcod, :pnome);
query.paramByName(´pcodi´).value:= txtCodigo.text;
query.paramByName(´pnome´).value:= txtNome.text;
query.execSQl;
-nome dos campos,
-integridade da tabela e de algum relacionamento;
e tente passar a string com o uso de QuotedStr
ex:
Insert into Tabela (codigo, nome) Values(´+txtcodigo.txt+´,´+ Quotedstr(txtNome.text)+ ´)´ );
Ou passe por paramentros
Insert into tabela (codigo, nome) Values (:pcod, :pnome);
query.paramByName(´pcodi´).value:= txtCodigo.text;
query.paramByName(´pnome´).value:= txtNome.text;
query.execSQl;
GOSTEI 0