Fórum insert dbexpress+delphi7+oracle #417299
23/05/2012
0
SQLConnection conectado ao banco. sqlquery1 conectado ao sqlconnection. DataSetProvider1 conectado ao sqlquery1. Clientdataset1 conectado ao DataSetProvider1. Datasource1 conectado ao Clientdataset1. No buttonclick esta o seguinte comando:
sqlquery1.Close;
sqlquery1.Open;
sqlquery1.SQL.Text := insert into pcbairro (codbairro,descricao) values (:CODBAIRRO,:BAIRRO);
sqlquery1.ParamByName(CODBAIRRO).Value := EDIT1.Text;
sqlquery1.ParamByName(BAIRRO).Value := EDIT2.Text;
sqlquery1.ExecSQL;
Esse comando inseriu no banco, porém com seguinte erro:
ACCESS VIOLATION AT ADDRESS 01253A24 MODULE DBEXPORA.DLL.
Estou fazendo um teste nesse comando simples para depois implementar o insert atraves de outras tabelas.
Obrigado!
Marcos Souza
Curtir tópico
+ 0Posts
23/05/2012
Joel Rodrigues
Gostei + 0
23/05/2012
Marcos Souza
sqlquery1.ExecSQL;
Gostei + 0
23/05/2012
Joel Rodrigues
Gostei + 0
23/05/2012
Marcos Souza
Gostei + 0
23/05/2012
Joel Rodrigues
Gostei + 0
23/05/2012
Marcos Souza
missing query, table name or procedure name.
Gostei + 0
23/05/2012
Joel Rodrigues
- como é uma instrução de inserção, você não precisa de DataSetProvider nem ClientDataSet, desligue-os da SQLQuery.
- Defina a instrução de inserção em tempo de design e, em runtime, passe apenas os parâmetros.
Vamos ver no que dá...
Gostei + 0
23/05/2012
Marcos Souza
Sera que o problema nao pode ser por causa que o campo DESCRICAO é um campo CHAR, no qual aceita qualquer tipo de caracteres e o oracle para entender esses caracteres, é necessaio estar com aspas simples . Caso eu informe dentro das aspas simples o proprio delphi informa erro: MISSING OPERATOR OR SIMICOLON.
Gostei + 0
23/05/2012
Joel Rodrigues
Gostei + 0
23/05/2012
Marcos Souza
cannot insert null...
Gostei + 0
25/05/2012
Marcos Souza
sqlquery1.Close;
SQLQUERY1.Open;
SQLQUERY1.SQL.Clear;
sqlquery1.SQL.Add(insert into pcbairro(codbairro,descricao) values (+QuotedStr(EDIT1.Text)+,+QuotedStr(EDIT2.Text)+));
//sqlquery1.ParamByName(CODBAIRRO).Value := EDIT1.Text;
//sqlquery1.ParamByName(BAIRRO).AsString := EDIT2.Text;
SQLQUERY1.ExecSQL(TRUE);
Caso possa me dar mais alguma dica referente o porque o registro nao inclui duas vezes seguidas. Ex: inseri o codbairro 1 e sua descricao. Quando informo manualmente codigo 2 e sua descricao, o delphi entende que ainda é codigo 1, entao fica dois codigos 1 gravado no banco. Sabe como proceder quanto a isso?
Gostei + 0
25/05/2012
Marcos Souza
SQLQUERY1.Open;
Obrigado!
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)