Hallo #,<p>
ich will folgenden SP im Rahmen eines Datenbank-Updates erzeugen.
<pre>
CREATE PROCEDURE SP_GET_KTOIDOFYEAR_REST_HOLIDAY
RETURNS (
THEKTOID INTEGER)
AS
begin
for select id from kto where bBool11='1' into :theKtoId do
begin
suspend;
Exit;
end
end
</pre>
<br>
Mein Code sieht wie folgt aus:
<pre>
with FQuerySQL do
begin
if StoreProcedureExists('SP_GET_KTOIDOFYEAR_REST_HOLI DAY') then
begin
Result:= True;
Exit;
end;
SQL.Clear;
SQL.Add('CREATE PROCEDURE SP_GET_KTOIDOFYEAR_REST_HOLIDAY');
SQL.Add('RETURNS (');
SQL.Add(' THEKTOID INTEGER)');
SQL.Add('AS');
SQL.Add('begin');
SQL.Add(' for select id from kto where bBool11=''1'' into :theKtoId do');
SQL.Add(' begin');
SQL.Add(' suspend;');
SQL.Add(' Exit;');
SQL.Add(' end');
SQL.Add('end');
ExecSQL;
Result:= True;
end;
</pre>
<p>
FQuerySQL ist TQuery. Zugriff erfolgt über bde.
<br>
Es mkommt die Fehlermeldung "Token unknown, line 6 , char 47"
<p>
Die folgende SP klappt aber, sie ist allerdings auch einfacher. Was mache ich denn falsch ?
<pre>
SQL.Clear;
SQL.Add('Create Procedure '+theTableName+'_NewId returns(newid integer)');
SQL.Add('as begin newid=gen_id(Gen_'+theTableName+',1); end;');
ExecSQL;
</pre>
<p>
Danke im voraus Heiko
ich will folgenden SP im Rahmen eines Datenbank-Updates erzeugen.
<pre>
CREATE PROCEDURE SP_GET_KTOIDOFYEAR_REST_HOLIDAY
RETURNS (
THEKTOID INTEGER)
AS
begin
for select id from kto where bBool11='1' into :theKtoId do
begin
suspend;
Exit;
end
end
</pre>
<br>
Mein Code sieht wie folgt aus:
<pre>
with FQuerySQL do
begin
if StoreProcedureExists('SP_GET_KTOIDOFYEAR_REST_HOLI DAY') then
begin
Result:= True;
Exit;
end;
SQL.Clear;
SQL.Add('CREATE PROCEDURE SP_GET_KTOIDOFYEAR_REST_HOLIDAY');
SQL.Add('RETURNS (');
SQL.Add(' THEKTOID INTEGER)');
SQL.Add('AS');
SQL.Add('begin');
SQL.Add(' for select id from kto where bBool11=''1'' into :theKtoId do');
SQL.Add(' begin');
SQL.Add(' suspend;');
SQL.Add(' Exit;');
SQL.Add(' end');
SQL.Add('end');
ExecSQL;
Result:= True;
end;
</pre>
<p>
FQuerySQL ist TQuery. Zugriff erfolgt über bde.
<br>
Es mkommt die Fehlermeldung "Token unknown, line 6 , char 47"
<p>
Die folgende SP klappt aber, sie ist allerdings auch einfacher. Was mache ich denn falsch ?
<pre>
SQL.Clear;
SQL.Add('Create Procedure '+theTableName+'_NewId returns(newid integer)');
SQL.Add('as begin newid=gen_id(Gen_'+theTableName+',1); end;');
ExecSQL;
</pre>
<p>
Danke im voraus Heiko
Comment