Delphi 2010 - problema com Parametro.
Pessoal,
Estou com o um problema referente à parametro no Delphi 2010.
Esse erro está sendo apresentado somente no delphi 2010 (utilizo o delphi 5 e não apresenta),está apresentando erro de foreign key no banco de dados, na tabela o campo codigo é uma foreign key e pode ser null.
Eu pesquisei na net e alguns orientam a fazer o seguinte:
mas não funciona. E tem tbem assim:
Se alguém souber de algo e puder me ajudar desde já agradeço. Obrigado!
Valeu!!!
Estou com o um problema referente à parametro no Delphi 2010.
Esse erro está sendo apresentado somente no delphi 2010 (utilizo o delphi 5 e não apresenta),está apresentando erro de foreign key no banco de dados, na tabela o campo codigo é uma foreign key e pode ser null.
if TRIM(Codigo) <> then
Query.ParamByName(CODIGO).asString := CODIGO
else
Query.ParamByName(CODIGO).DataType := ftString;
Eu pesquisei na net e alguns orientam a fazer o seguinte:
ParamByName(CODIGO).DataType := ftstring; ParamByName(CODIGO).Clear;
mas não funciona. E tem tbem assim:
ParamByName(CODIGO).DataType := ftstring; ParamByName(CODIGO).Bound := true;
Se alguém souber de algo e puder me ajudar desde já agradeço. Obrigado!
Valeu!!!
Walmir Taques
Curtidas 0
Respostas
Joel Rodrigues
17/08/2012
Qual é exatamente o problema?
GOSTEI 0
William
17/08/2012
Colega não é uma prática muito boa, mas tenta passar o valor null então.
Só uma dúvida se o campo é foreign key e faz relação com outra tabela, pq existe a possibilidade de não ser passado valor?
if TRIM(Codigo) <> then Query.ParamByName(CODIGO).asString := CODIGO else Query.ParamByName(CODIGO).Value := null;
Só uma dúvida se o campo é foreign key e faz relação com outra tabela, pq existe a possibilidade de não ser passado valor?
GOSTEI 0
Walmir Taques
17/08/2012
Qual é exatamente o problema?
O problema é que quando tento gravar um valor null passando datatype = ftstring para um campo onde o mesmo é uma chave estrangeira onde pode ser null ...não funciona. apresenta o erro :
No primary key value for foreign key 'FK_Codigo' in table TBPEDIDO
GOSTEI 0
Walmir Taques
17/08/2012
Colega não é uma prática muito boa, mas tenta passar o valor null então.
Só uma dúvida se o campo é foreign key e faz relação com outra tabela, pq existe a possibilidade de não ser passado valor?
if TRIM(Codigo) <> then Query.ParamByName(CODIGO).asString := CODIGO else Query.ParamByName(CODIGO).Value := null;
Só uma dúvida se o campo é foreign key e faz relação com outra tabela, pq existe a possibilidade de não ser passado valor?
Já tentei, não funcionou.
GOSTEI 0
Carlos Phelippe
17/08/2012
Assim não resolve:
Query.ParamByName(CODIGO).IsNull;
GOSTEI 0
Joel Rodrigues
17/08/2012
Você consegue inserir esse registro direto no banco?
GOSTEI 0
Walmir Taques
17/08/2012
Você consegue inserir esse registro direto no banco?
Consigo.
Efetuei uns teste aqui no oracle e não apresentou erro.
Só que no Sybase continua...bem provavel que é bug do Sybase.
GOSTEI 0
Walmir Taques
17/08/2012
Assim não resolve:
Query.ParamByName(CODIGO).IsNull;
Não tentei dessa maneira ..vou testar e posto o resultado...valeu pela ajuda.Obrigado!
GOSTEI 0
Walmir Taques
17/08/2012
Assim não resolve:
Query.ParamByName(CODIGO).IsNull;
Não tentei dessa maneira ..vou testar e posto o resultado...valeu pela ajuda.Obrigado!
Fiz dessa maneira mas não funcionou.
GOSTEI 0
Rafael Ribeiro
17/08/2012
Tenta:
Query.ParamByName(CODIGO).asstring = '';
GOSTEI 0
Walmir Taques
17/08/2012
Tenta:
Query.ParamByName(CODIGO).asstring = '';
Tambem não funciona...ele tenta validar devido a chave estrangeira.
GOSTEI 0
Francisco Macário
17/08/2012
colega não é uma prática muito boa, mas tenta passar o valor null então.
if trim(codigo) <> then
query.parambyname(codigo).asstring := codigo
else
query.parambyname(codigo).value := null;
só uma dúvida se o campo é foreign key e faz relação com outra tabela, pq existe a possibilidade de não ser passado valor?
if trim(codigo) <> then
query.parambyname(codigo).asstring := codigo
else
query.parambyname(codigo).value := null;
só uma dúvida se o campo é foreign key e faz relação com outra tabela, pq existe a possibilidade de não ser passado valor?
Fiquei intrigado, como é possível criar a integridade relacional com campo que aceita NULL?
Não conheço Oracle, mas acho que isso não é uma particularidade dele.
GOSTEI 0
Daniel Jordão
17/08/2012
Boas pessoal,
Estou com um problema. Estou usando o Delphi XE5 e estou tentando fazer uma pesquisa na minha tabela, base de dados.
No entanto o "ParamByName" não está sendo aceite pelo programa.
procedure TFormPesquisarRelatorioTurno.Panel2Click(Sender: TObject);
begin
banco2.table2.close;
banco2.table2.ParamByName('NOME_CHEFE').Asstring:=EditPesquisa.Text;
banco2.table2.open;
end;
Dá o erro:
[dcc32 Error] PesquisarRelatoriosTurno.pas(56): E2003 Undeclared identifier: 'ParamByName'
[dcc32 Error] PesquisarRelatoriosTurno.pas(56): E2066 Missing operator or semicolon
[dcc32 Fatal Error] F2063 Could not compile used unit 'PesquisarRelatoriosTurno.pas'
Alguem me consegue ajudar? o que é que se passa?
Estou com um problema. Estou usando o Delphi XE5 e estou tentando fazer uma pesquisa na minha tabela, base de dados.
No entanto o "ParamByName" não está sendo aceite pelo programa.
procedure TFormPesquisarRelatorioTurno.Panel2Click(Sender: TObject);
begin
banco2.table2.close;
banco2.table2.ParamByName('NOME_CHEFE').Asstring:=EditPesquisa.Text;
banco2.table2.open;
end;
Dá o erro:
[dcc32 Error] PesquisarRelatoriosTurno.pas(56): E2003 Undeclared identifier: 'ParamByName'
[dcc32 Error] PesquisarRelatoriosTurno.pas(56): E2066 Missing operator or semicolon
[dcc32 Fatal Error] F2063 Could not compile used unit 'PesquisarRelatoriosTurno.pas'
Alguem me consegue ajudar? o que é que se passa?
GOSTEI 0
Carlos Phelippe
17/08/2012
E2003 Undeclared identifier: 'ParamByName'
Em qual UNIT está declarado ParamByName?
Não seria apenas adicionar isso no USES?
Em qual UNIT está declarado ParamByName?
Não seria apenas adicionar isso no USES?
GOSTEI 0
Walmir Taques
17/08/2012
Boas pessoal,
Estou com um problema. Estou usando o Delphi XE5 e estou tentando fazer uma pesquisa na minha tabela, base de dados.
No entanto o "ParamByName" não está sendo aceite pelo programa.
procedure TFormPesquisarRelatorioTurno.Panel2Click(Sender: TObject);
begin
banco2.table2.close;
banco2.table2.ParamByName('NOME_CHEFE').Asstring:=EditPesquisa.Text;
banco2.table2.open;
end;
Dá o erro:
[dcc32 Error] PesquisarRelatoriosTurno.pas(56): E2003 Undeclared identifier: 'ParamByName'
[dcc32 Error] PesquisarRelatoriosTurno.pas(56): E2066 Missing operator or semicolon
[dcc32 Fatal Error] F2063 Could not compile used unit 'PesquisarRelatoriosTurno.pas'
Alguem me consegue ajudar? o que é que se passa?
Estou com um problema. Estou usando o Delphi XE5 e estou tentando fazer uma pesquisa na minha tabela, base de dados.
No entanto o "ParamByName" não está sendo aceite pelo programa.
procedure TFormPesquisarRelatorioTurno.Panel2Click(Sender: TObject);
begin
banco2.table2.close;
banco2.table2.ParamByName('NOME_CHEFE').Asstring:=EditPesquisa.Text;
banco2.table2.open;
end;
Dá o erro:
[dcc32 Error] PesquisarRelatoriosTurno.pas(56): E2003 Undeclared identifier: 'ParamByName'
[dcc32 Error] PesquisarRelatoriosTurno.pas(56): E2066 Missing operator or semicolon
[dcc32 Fatal Error] F2063 Could not compile used unit 'PesquisarRelatoriosTurno.pas'
Alguem me consegue ajudar? o que é que se passa?
Que componente é esse bancow.table2 ?
Vc não explicou muito do que se trata.
GOSTEI 0
Cauê Nishijima
17/08/2012
Vamos por parte, com relação ao primeiro problema, não sei se é a forma mais elegante mas funciona:
E com relação ao segundo problema se 'table2' for um componente do tipo TTable e não TQuery, não haverá o método 'ParamByName'
if TRIM(Codigo) <> EmptyStr then Query.ParamByName(CODIGO).asString := CODIGO else begin sqlAntiga := Query.SQL.Text; sqlNova := StringReplace(sqlAntiga, ' = :codigo', ' is null', []); Query.SQL.Clear; Query.SQL.Add(sqlNova); Query.Open; Query.SQL.Clear; Query.SQL.Add(sqlAntiga) ; end;
E com relação ao segundo problema se 'table2' for um componente do tipo TTable e não TQuery, não haverá o método 'ParamByName'
GOSTEI 0
Nelson Santos
17/08/2012
Desenvolva softwares 3D em Delphi 7
www.3dsistemas.com.br
www.3dsistemas.com.br
GOSTEI 0