Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 8 of 8 total
Thread Insert Into
Sun, Apr 20 2008 8:24 AMPermanent Link

Dieter Nagy
Hello,
I try this with a SCRIPT:

SCRIPT (IN "ID" Int,IN "ID1" int)
BEGIN


DECLARE Result CURSOR WITH RETURN FOR Stmt;
DECLARE NEU integer;


UNPrepare stmt;

 BEGIN
     EXECUTE IMMEDIATE 'DROP TABLE Zwischen_Ergebnis';
  EXCEPTION
  END;

  EXECUTE IMMEDIATE 'CREATE TEMPORARY TABLE Zwischen_Ergebnis
                    (
                    "ZAHL" INTEGER,
                    "ANZAHL" INTEGER
                    )';
 BEGIN
 PREPARE Stmt FROM 'select * from Probe where runde between ? AND ?';
 Open result USING ID,ID1;
 END;

 Fetch FIRST from Result(Z1) into Neu;
 CLOSE Result;

   
END

I try to insert the records from probe into Zwischen_ergebnis.
But I don't now how I can do this....
Please help me

TIA
Dieter
Sun, Apr 20 2008 10:26 AMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Dieter


Doesn't INSERT INTO work?

Roy Lambert [Team Elevate]
Sun, Apr 20 2008 12:41 PMPermanent Link

Dieter Nagy
Roy, thanks for your answer,

I tried this

prepare stmt from 'INSERT INTO Zwischen_ergebnis(Zahl)VALUES (Neu)';

I get the error:

ElevateDB Error #700 An error was found in the statement at line 27 and column 21 (Expected column name but instead found "Neu")

When I replace Neu with eg 11

prepare stmt from 'INSERT INTO Zwischen_ergebnis(Zahl)VALUES (11)';

works fine.....

TIA
Dieter




Roy Lambert <roy.lambert@skynet.co.uk> wrote:

Dieter


Doesn't INSERT INTO work?

Roy Lambert [Team Elevate]
Sun, Apr 20 2008 12:58 PMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Dieter

Try


prepare stmt from 'INSERT INTO Zwischen_ergebnis(Zahl)VALUES ('+CAST(Neu AS VARCHAR)+')';

or better still something like

INSERT INTO Zwischen_ergebnis(Zahl) SELECT Z1 FROM Probe where runde between ? AND ?' RANGE 1 TO 1;

Totally untested

Roy Lambert
Sun, Apr 20 2008 1:32 PMPermanent Link

Dieter Nagy
Thanks Roy,

but it do not work.

SQL Query (Executed by ElevateDB 1.09 Build 3)

Note: The SQL  shown here is generated by ElevateDB and may not be exactly the
same as the SQL that was originally entered.  However, none of the differences
alter the execution results in any way.
================================================================================

SELECT ALL
"zwischen_ergebnis"."ZAHL" AS "ZAHL",
"zwischen_ergebnis"."ANZAHL" AS "ANZAHL"
FROM "zwischen_ergebnis"

Source Tables
-------------

zwischen_ergebnis: 0 rows

Result Set
----------

The result set was sensitive
The result set consisted of zero or more rows
The result set was ordered using the table's natural order



Please help....
TIA
Dieter











Roy Lambert <roy.lambert@skynet.co.uk> wrote:

Dieter

Try


prepare stmt from 'INSERT INTO Zwischen_ergebnis(Zahl)VALUES ('+CAST(Neu AS VARCHAR)+')';

or better still something like

INSERT INTO Zwischen_ergebnis(Zahl) SELECT Z1 FROM Probe where runde between ? AND ?' RANGE 1 TO 1;

Totally untested

Roy Lambert
Sun, Apr 20 2008 1:55 PMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Dieter

I just tried


SCRIPT
BEGIN
  BEGIN
     EXECUTE IMMEDIATE 'DROP TABLE Zwischen_Ergebnis';
  EXCEPTION
  END;

  EXECUTE IMMEDIATE 'CREATE TEMPORARY TABLE Zwischen_Ergebnis
                    (
                    "ZAHL" INTEGER,
                    "ANZAHL" INTEGER
                    )';

 EXECUTE IMMEDIATE 'INSERT INTO Zwischen_Ergebnis(ZAHL) SELECT _Sequence FROM BILLING RANGE 1 TO 1';

END

here and it works fine.

My guess is the parameters so alter the statement I gave you to

INSERT INTO Zwischen_ergebnis(Zahl) SELECT Z1 FROM Probe where runde between '+ CAST(ID AS VARCHAR) +' AND '+CAST(ID1 AS VARCHAR) RANGE 1 TO 1;


Roy Lambert [Team Elevate]
Mon, Apr 21 2008 7:30 AMPermanent Link

Dieter Nagy
Hello Roy,
thanks now it works fine.

Dieter













Roy Lambert <roy.lambert@skynet.co.uk> wrote:

Dieter

I just tried


SCRIPT
BEGIN
  BEGIN
     EXECUTE IMMEDIATE 'DROP TABLE Zwischen_Ergebnis';
  EXCEPTION
  END;

  EXECUTE IMMEDIATE 'CREATE TEMPORARY TABLE Zwischen_Ergebnis
                    (
                    "ZAHL" INTEGER,
                    "ANZAHL" INTEGER
                    )';

 EXECUTE IMMEDIATE 'INSERT INTO Zwischen_Ergebnis(ZAHL) SELECT _Sequence FROM BILLING RANGE 1 TO 1';

END

here and it works fine.

My guess is the parameters so alter the statement I gave you to

INSERT INTO Zwischen_ergebnis(Zahl) SELECT Z1 FROM Probe where runde between '+ CAST(ID AS VARCHAR) +' AND '+CAST(ID1 AS
VARCHAR) RANGE 1 TO 1;


Roy Lambert [Team Elevate]
Mon, Apr 21 2008 9:24 AMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Roy,

<< My guess is the parameters so alter the statement I gave you to >>

Yep, parameters are not supported with EXECUTE IMMEDIATE statements.

--
Tim Young
Elevate Software
www.elevatesoft.com

Image