Delphi Tour stops in Sacramento and Los Angeles
Your truly will be in Sacramento on 12/2 and in Los Angeles on 12/3. Please follow the links for all the details. Please tell all your friends and co-workers to register in advance so that we can have enough PIZZA for you all!
In other news, Michael Rozlog (Delphi Product Manager) will be in Atlanta on 12/1 and in Miami on 12/2. Please see those links for details and registration as well.
Thanks, and Happy Turkey Day!
![]()
December 2nd, 2009 at 10:50 pm
Quality problem with delphi error from 30/10/2006 REF:35900
Hallo
The problem is that dbexpress thinks that this sentence
select * from databasex::tablex where fieldx=:parameter1
Says that databasex::tablex is a parameter but this is a supported language feature of informix where I can select a table from other database that is running in the same informix server
Example :
You have two BD`s one is named PEX with the table TABLE1 and the other is named GCOMERCIAL with the table TABLE2
If you connect to PEX and you try to execute this select:
select * from GCOMERCIAL::TABLE2
You get one error because dbexpress thinks that GCOMERCIAL::TABLE2 is a parameter
The correct form is that after preprocess of the sentence
select * from databasex::tablex where fieldx=:parameter1
results in :
select * from databasex:tablex where fieldx=?
I was debugging and found that if I change:
I have modified SqlExpr.pas to support this but now i haven t support to create parameters automatically readed from sql sentences . I have to create them manually.
and this only functions with selects using Open not with ExecSql
procedure TSQLQuery.QueryChanged(Sender: TObject);
begin
if not (csReading in ComponentState) then
begin
Close;
SetPrepared(False);
if ParamCheck or (csDesigning in ComponentState) then
begin
FCommandText := SQL.Text;
FText := FCommandText;
SetParamsFromSQL(nil, False);
// start of change
FText:=FNativeCommand;
// end of change
end
else
FText := SQL.Text;
DataEvent(dePropertyChange, 0);
end
else
FText := FParams.ParseSQL(SQL.Text, False);
SetFCommandText(FText);
end;
And I still can’t execute sentences UPDATE INSERT or DELETE
Example
Update GCOMERCIAL::TABLE2 set field1="A"
Only we can execute if we use Paramcheck:=False and change the sentence to
Update GCOMERCIAL:TABLE2 set field1="A"
I get an error .
I’m having a lot of problem because we have a lot of legacy code from delphi5 migrated to Delphi 2006 and we have to change this , but
Sometimes we need use in the same sentence a DATABASE ALIAS and parameters
For we is a very very big problem
We have bugs in our applications every day for this problem because we need share data logic between differents versions of delphi
Delphi 7, Delphi 2006 Win 32 and Delphi 2006 Dotnet
Thanks in advance for your help
P.D. To test this you need an informix server with two databases