Erro no SQLDataSet
Estou tentando fazer um insert no banco usando o SQLDataSet. Quando vou dar um SQLDataSet.ExecSQL; daum erro:
Unassigned Code. Mas eu já passei o sql para a propiedade comandtext com o SQLDataSet fechado e mesmo assim continua dando esse erro. Sabem como resolvê-lo?
Unassigned Code. Mas eu já passei o sql para a propiedade comandtext com o SQLDataSet fechado e mesmo assim continua dando esse erro. Sabem como resolvê-lo?
Foxcyber
Curtidas 0
Respostas
Fer_nanda
22/10/2004
Está usando Firebird? Verifique se o nome das tabelas estão com os nomes em maiúsculo.
Até.
Até.
GOSTEI 0
Foxcyber
22/10/2004
Esta tudo com nome maíusculo.
GOSTEI 0
Fer_nanda
22/10/2004
Vc já tentou executar a sql pelo ibexpert (iboconsole...) para ver se está rodando?
GOSTEI 0
Vinicius2k
22/10/2004
Colega,
Duas situações em que eu já vi este erro :
1. Criação dos objetos do banco usando aspas duplas e referenciação dentro da aplicação sem as aspas e vice-versa.
2. Passagem de parametros para colunas SQLTimeStamp como AsDateTime...
Estas duas situações se encaixam na sua situação?
Poste-nos o bloco do código aonde vc passa a instrução para o SQLDataSet e executa...
T+
Duas situações em que eu já vi este erro :
1. Criação dos objetos do banco usando aspas duplas e referenciação dentro da aplicação sem as aspas e vice-versa.
2. Passagem de parametros para colunas SQLTimeStamp como AsDateTime...
Estas duas situações se encaixam na sua situação?
Poste-nos o bloco do código aonde vc passa a instrução para o SQLDataSet e executa...
T+
GOSTEI 0
Foxcyber
22/10/2004
begin
sql:=´´;
sql:=´INSERT INTO CONTASCORRENTES ( IDCATEGORIACC, IDCONTACORRENTE, NUMCONTACC, NOMEABREVCC, DATAABERTURA, ´+
´ LIMITECHESPECIAL, IDBANCO, AGENCIA, IDESTABEL, IDSTATUS, CONTATO, DDD, FONE1, FONE2, FONE3, DESCRICAO, ´+
´ CONTACONJUNTA, TITULARPRIMEIRO, CPFTITULAR1, TITULARSEGUNDO, CPFTITULAR2, CRIADOPOR, DATACRIACAO )´+
´ VALUES ( :IDCATEGORIACC, :IDCONTACORRENTE, :NUMCONTACC, :NOMEABREVCC, :DATAABERTURA, ´+
´ :LIMITECHESPECIAL, :IDBANCO, :AGENCIA, :IDESTABEL, :IDSTATUS, :CONTATO, :DDD, :FONE1, :FONE2, :FONE3, ´+
´ :DESCRICAO, :CONTACONJUNTA, :TITULARPRIMEIRO, :CPFTITULAR1, :TITULARSEGUNDO, :CPFTITULAR2, :CRIADOPOR,´+
´ :DATACRIACAO )´;
SELF.SQLDataSetInsert.Active:=false;
SELF.SQLDataSetInsert.CommandText:=´´;
self.SQLDataSetInsert.CommandText:=sql;
self.SQLDataSetInsert.Params[0].AsInteger:=Form_ContasCorrentes.DBLookupComboBox3.KeyValue;
self.SQLDataSetInsert.Params[1].AsInteger:=STRTOINT(Form_ContasCorrentes.DBEdit1.Text);
self.SQLDataSetInsert.Params[2].AsString:=Form_ContasCorrentes.DBEdit2.Text;
self.SQLDataSetInsert.Params[3].AsString:=Form_ContasCorrentes.DBEdit3.Text;
self.SQLDataSetInsert.Params[4].AsDate:=Form_ContasCorrentes.EvDBDateEdit1.DateValue;
self.SQLDataSetInsert.Params[5].AsFloat:=Form_ContasCorrentes.EvDBNumEdit1.Value;
self.SQLDataSetInsert.Params[6].AsInteger:=Form_ContasCorrentes.DBLookupComboBox1.KeyValue;
self.SQLDataSetInsert.Params[7].AsString:=Form_ContasCorrentes.DBLookupComboBox2.KeyValue;
self.SQLDataSetInsert.Params[8].AsInteger:=Form_ContasCorrentes.DBLookupComboBox5.KeyValue;
self.SQLDataSetInsert.Params[9].AsInteger:=Form_ContasCorrentes.DBLookupComboBox4.KeyValue;
self.SQLDataSetInsert.Params[10].AsString:=Form_ContasCorrentes.DBEdit4.Text;
self.SQLDataSetInsert.Params[11].AsString:=Form_ContasCorrentes.DBEdit6.Text;
self.SQLDataSetInsert.Params[12].AsString:=Form_ContasCorrentes.DBEdit7.Text;
self.SQLDataSetInsert.Params[13].AsString:=Form_ContasCorrentes.DBEdit8.Text;
self.SQLDataSetInsert.Params[14].AsString:=Form_ContasCorrentes.DBEdit9.Text;
self.SQLDataSetInsert.Params[15].AsString:=Form_ContasCorrentes.DBEdit5.Text;
IF Form_ContasCorrentes.DBCheckBox1.Checked THEN
self.SQLDataSetInsert.Params[16].AsString:=Form_ContasCorrentes.DBCheckBox1.ValueChecked
ELSE
self.SQLDataSetInsert.Params[16].AsString:=Form_ContasCorrentes.DBCheckBox1.ValueUnchecked;
self.SQLDataSetInsert.Params[17].AsString:=Form_ContasCorrentes.DBEdit11.Text;
self.SQLDataSetInsert.Params[18].AsString:=Form_ContasCorrentes.DBEdit10.Text;
self.SQLDataSetInsert.Params[19].AsString:=Form_ContasCorrentes.DBEdit12.Text;
self.SQLDataSetInsert.Params[20].AsString:=Form_ContasCorrentes.DBEdit13.Text;
self.SQLDataSetInsert.Params[21].AsString:=Form_ContasCorrentes.DBEdit14.Text;
self.SQLDataSetInsert.Params[22].AsDateTime:=strtodatetime(Form_ContasCorrentes.DBEdit15.Text);
end;
try
tr.TransactionID:=2;
tr.IsolationLevel:=xilreadcommitted;
dtmConexao.SQLConnectionCadastros.StartTransaction(tr);
self.SQLDataSetInsert.ExecSQL ;
dtmconexao.SQLConnectionCadastros.Commit(tr);
self._CarregaContas;
result:=true;
MessageDlg(´Registro Gravado com Sucesso!!!´, mtInformation, [mbOK], 0);
except on E: Exception
do
begin
dtmconexao.SQLConnectionCadastros.Rollback(tr);
MessageDlg(´Não foi possível gravar o registro !!!´ + #13 + 13 +
E.Message , mtError, [mbOK], 0);
end;
end;
sql:=´´;
sql:=´INSERT INTO CONTASCORRENTES ( IDCATEGORIACC, IDCONTACORRENTE, NUMCONTACC, NOMEABREVCC, DATAABERTURA, ´+
´ LIMITECHESPECIAL, IDBANCO, AGENCIA, IDESTABEL, IDSTATUS, CONTATO, DDD, FONE1, FONE2, FONE3, DESCRICAO, ´+
´ CONTACONJUNTA, TITULARPRIMEIRO, CPFTITULAR1, TITULARSEGUNDO, CPFTITULAR2, CRIADOPOR, DATACRIACAO )´+
´ VALUES ( :IDCATEGORIACC, :IDCONTACORRENTE, :NUMCONTACC, :NOMEABREVCC, :DATAABERTURA, ´+
´ :LIMITECHESPECIAL, :IDBANCO, :AGENCIA, :IDESTABEL, :IDSTATUS, :CONTATO, :DDD, :FONE1, :FONE2, :FONE3, ´+
´ :DESCRICAO, :CONTACONJUNTA, :TITULARPRIMEIRO, :CPFTITULAR1, :TITULARSEGUNDO, :CPFTITULAR2, :CRIADOPOR,´+
´ :DATACRIACAO )´;
SELF.SQLDataSetInsert.Active:=false;
SELF.SQLDataSetInsert.CommandText:=´´;
self.SQLDataSetInsert.CommandText:=sql;
self.SQLDataSetInsert.Params[0].AsInteger:=Form_ContasCorrentes.DBLookupComboBox3.KeyValue;
self.SQLDataSetInsert.Params[1].AsInteger:=STRTOINT(Form_ContasCorrentes.DBEdit1.Text);
self.SQLDataSetInsert.Params[2].AsString:=Form_ContasCorrentes.DBEdit2.Text;
self.SQLDataSetInsert.Params[3].AsString:=Form_ContasCorrentes.DBEdit3.Text;
self.SQLDataSetInsert.Params[4].AsDate:=Form_ContasCorrentes.EvDBDateEdit1.DateValue;
self.SQLDataSetInsert.Params[5].AsFloat:=Form_ContasCorrentes.EvDBNumEdit1.Value;
self.SQLDataSetInsert.Params[6].AsInteger:=Form_ContasCorrentes.DBLookupComboBox1.KeyValue;
self.SQLDataSetInsert.Params[7].AsString:=Form_ContasCorrentes.DBLookupComboBox2.KeyValue;
self.SQLDataSetInsert.Params[8].AsInteger:=Form_ContasCorrentes.DBLookupComboBox5.KeyValue;
self.SQLDataSetInsert.Params[9].AsInteger:=Form_ContasCorrentes.DBLookupComboBox4.KeyValue;
self.SQLDataSetInsert.Params[10].AsString:=Form_ContasCorrentes.DBEdit4.Text;
self.SQLDataSetInsert.Params[11].AsString:=Form_ContasCorrentes.DBEdit6.Text;
self.SQLDataSetInsert.Params[12].AsString:=Form_ContasCorrentes.DBEdit7.Text;
self.SQLDataSetInsert.Params[13].AsString:=Form_ContasCorrentes.DBEdit8.Text;
self.SQLDataSetInsert.Params[14].AsString:=Form_ContasCorrentes.DBEdit9.Text;
self.SQLDataSetInsert.Params[15].AsString:=Form_ContasCorrentes.DBEdit5.Text;
IF Form_ContasCorrentes.DBCheckBox1.Checked THEN
self.SQLDataSetInsert.Params[16].AsString:=Form_ContasCorrentes.DBCheckBox1.ValueChecked
ELSE
self.SQLDataSetInsert.Params[16].AsString:=Form_ContasCorrentes.DBCheckBox1.ValueUnchecked;
self.SQLDataSetInsert.Params[17].AsString:=Form_ContasCorrentes.DBEdit11.Text;
self.SQLDataSetInsert.Params[18].AsString:=Form_ContasCorrentes.DBEdit10.Text;
self.SQLDataSetInsert.Params[19].AsString:=Form_ContasCorrentes.DBEdit12.Text;
self.SQLDataSetInsert.Params[20].AsString:=Form_ContasCorrentes.DBEdit13.Text;
self.SQLDataSetInsert.Params[21].AsString:=Form_ContasCorrentes.DBEdit14.Text;
self.SQLDataSetInsert.Params[22].AsDateTime:=strtodatetime(Form_ContasCorrentes.DBEdit15.Text);
end;
try
tr.TransactionID:=2;
tr.IsolationLevel:=xilreadcommitted;
dtmConexao.SQLConnectionCadastros.StartTransaction(tr);
self.SQLDataSetInsert.ExecSQL ;
dtmconexao.SQLConnectionCadastros.Commit(tr);
self._CarregaContas;
result:=true;
MessageDlg(´Registro Gravado com Sucesso!!!´, mtInformation, [mbOK], 0);
except on E: Exception
do
begin
dtmconexao.SQLConnectionCadastros.Rollback(tr);
MessageDlg(´Não foi possível gravar o registro !!!´ + #13 + 13 +
E.Message , mtError, [mbOK], 0);
end;
end;
GOSTEI 0
Vinicius2k
22/10/2004
Colega,
À principio seu problema me parece com os parametros 4 e 22...
Antes de atribuir valor a eles, sete o tipo de dado, e utilize a propriedade Value (variant), desta forma :
T+
À principio seu problema me parece com os parametros 4 e 22...
Antes de atribuir valor a eles, sete o tipo de dado, e utilize a propriedade Value (variant), desta forma :
Params[4].Value:=Form_ContasCorrentes.EvDBDateEdit1.DateValue; ... Params[22].DataType:= ftTimeStamp; Params[22].Value:= StrToDateTime(Form_ContasCorrentes.DBEdit15.Text);
T+
GOSTEI 0
Eniorm
22/10/2004
revivendo esse tópico....
meu projeto tava usando Firebird 1.5 com DBX e o driver UIB e estava tudo funcionando blza....
dai resolvi deixar o driver padrão da Borland e começou a apresentar esse erro UNASSIGNED CODE e problemas qdo eu tento gravar data no banco:
FieldByName(´DATA´).AsDate := DBDateEdit1.Date;
isso não acontecia antes...
por padrão, sempre escrevo os nomes de campos e tabelas em MAIUSCULO.
abraços
meu projeto tava usando Firebird 1.5 com DBX e o driver UIB e estava tudo funcionando blza....
dai resolvi deixar o driver padrão da Borland e começou a apresentar esse erro UNASSIGNED CODE e problemas qdo eu tento gravar data no banco:
FieldByName(´DATA´).AsDate := DBDateEdit1.Date;
isso não acontecia antes...
por padrão, sempre escrevo os nomes de campos e tabelas em MAIUSCULO.
abraços
GOSTEI 0
Eniorm
22/10/2004
...aproveitando a oportunidade.....
alguém sabe se ja tem um driver confiável para DBX trabalhar com FB2 ???
abraços
alguém sabe se ja tem um driver confiável para DBX trabalhar com FB2 ???
abraços
GOSTEI 0