Subject | Invalid Insert Statement: No columns |
---|---|
Author | mspencewasunavailable |
Post date | 2006-12-12T16:48:54Z |
Using IBObjects 4.7 beta 11, I'm trying to insert rows into a
TIBOTable. The table is set into append mode and the new record's
fields are updated using statements like this:
with tblEditInv do
begin
FieldByName('Date').AsDateTime :=
t.FieldByName('Date').AsDateTime;
FieldByName('Code').AsInteger :=
t.FieldByName('Code').AsInteger;
FieldByName('Serv ID').AsInteger :=
t.FieldByName('Serv ID').AsInteger;
FieldByName('Description').AsString :=
t.FieldByName('Description').AsString;
(and so forth)
where t is another table with fields I want to present using
tblEditInv. When tblEditInv.Post is called I get the error
message "Invalid Insert Statement: No Columns".
When I searched the archives, the only conversation I could find
about this was one that suggested that field name quoting might be
an issue. I'm saddled with a database with many, many field names
that need quoting, and there does seem to be something awry.
Here's my table definition:
CREATE TABLE "EDITINV"(
"Date" DATE,
"Code" SMALLINT,
"Serv ID" INTEGER,
"Description" VARCHAR(45),
"Qty" NUMERIC(12,2),
"Amount" NUMERIC(14,4),
"Base Price" NUMERIC(12,2),
"Tax Code" SMALLINT,
"Tax" NUMERIC(12,2),
"Extended" NUMERIC(12,2),
"Crew" SMALLINT,
"Zone" SMALLINT,
"Route" SMALLINT,
"Cost" NUMERIC(12,2),
"Scheduled" VARCHAR(1),
"Qty Used" NUMERIC(12,2),
"Man Hours" NUMERIC(12,2),
"Old Date" DATE,
"Old Code" SMALLINT,
"Old Serv ID" INTEGER,
"Old Qty" NUMERIC(12,2),
"Old Amount" NUMERIC(14,4),
"Old Base Price" NUMERIC(12,2),
"Old Tax Code" SMALLINT,
"Old Tax" NUMERIC(12,2),
"Old Qty Used" NUMERIC(12,2),
"Old Man Hours" NUMERIC(12,2),
"INSTANCE_ID" INTEGER NOT NULL,
"SESSION_ID" INTEGER NOT NULL);
ALTER TABLE "EDITINV" ADD CONSTRAINT "PK_EDITINV" PRIMARY KEY
(SESSION_ID, INSTANCE_ID);
Here's an excerpt from the log when the table goes active:
SELECT ALL EDITINV.*
FROM EDITINV
WHERE SESSION_ID = 6
ORDER BY EDITINV.SESSION_ID ASC
, EDITINV.INSTANCE_ID ASC
PLAN (EDITINV ORDER PK_EDITINV
INDEX (PK_EDITINV))
FIELDS = [ Version 1 SQLd 29 SQLn
64
EDITINV.DATE = <NIL>
EDITINV.CODE = <NIL>
EDITINV."Serv ID" = <NIL>
EDITINV.DESCRIPTION = <NIL>
EDITINV.QTY = <NIL>
EDITINV.AMOUNT = <NIL>
EDITINV."Base Price" = <NIL>
EDITINV."Tax Code" = <NIL>
EDITINV.TAX = <NIL>
EDITINV.EXTENDED = <NIL>
EDITINV.CREW = <NIL>
EDITINV.ZONE = <NIL>
EDITINV.ROUTE = <NIL>
EDITINV.COST = <NIL>
EDITINV.SCHEDULED = <NIL>
EDITINV."Qty Used" = <NIL>
EDITINV."Man Hours" = <NIL>
EDITINV."Old Date" = <NIL>
EDITINV."Old Code" = <NIL>
EDITINV."Old Serv ID" = <NIL>
EDITINV."Old Qty" = <NIL>
EDITINV."Old Amount" = <NIL>
EDITINV."Old Base Price" = <NIL>
EDITINV."Old Tax Code" = <NIL>
EDITINV."Old Tax" = <NIL>
EDITINV."Old Qty Used" = <NIL>
EDITINV."Old Man Hours" = <NIL>
EDITINV.INSTANCE_ID = <NIL>
EDITINV.SESSION_ID = <NIL> ]
I don't know if this is sigificant, but fields such
as "Date", "Qty", "Description" and other one-token names are all
shown in the log as upper case, whereas fields like "Qty Used" is
properly quoted.
Does this ring any bells with anyone?
Michael D. Spence
Mockingbird Data Systems, Inc.
TIBOTable. The table is set into append mode and the new record's
fields are updated using statements like this:
with tblEditInv do
begin
FieldByName('Date').AsDateTime :=
t.FieldByName('Date').AsDateTime;
FieldByName('Code').AsInteger :=
t.FieldByName('Code').AsInteger;
FieldByName('Serv ID').AsInteger :=
t.FieldByName('Serv ID').AsInteger;
FieldByName('Description').AsString :=
t.FieldByName('Description').AsString;
(and so forth)
where t is another table with fields I want to present using
tblEditInv. When tblEditInv.Post is called I get the error
message "Invalid Insert Statement: No Columns".
When I searched the archives, the only conversation I could find
about this was one that suggested that field name quoting might be
an issue. I'm saddled with a database with many, many field names
that need quoting, and there does seem to be something awry.
Here's my table definition:
CREATE TABLE "EDITINV"(
"Date" DATE,
"Code" SMALLINT,
"Serv ID" INTEGER,
"Description" VARCHAR(45),
"Qty" NUMERIC(12,2),
"Amount" NUMERIC(14,4),
"Base Price" NUMERIC(12,2),
"Tax Code" SMALLINT,
"Tax" NUMERIC(12,2),
"Extended" NUMERIC(12,2),
"Crew" SMALLINT,
"Zone" SMALLINT,
"Route" SMALLINT,
"Cost" NUMERIC(12,2),
"Scheduled" VARCHAR(1),
"Qty Used" NUMERIC(12,2),
"Man Hours" NUMERIC(12,2),
"Old Date" DATE,
"Old Code" SMALLINT,
"Old Serv ID" INTEGER,
"Old Qty" NUMERIC(12,2),
"Old Amount" NUMERIC(14,4),
"Old Base Price" NUMERIC(12,2),
"Old Tax Code" SMALLINT,
"Old Tax" NUMERIC(12,2),
"Old Qty Used" NUMERIC(12,2),
"Old Man Hours" NUMERIC(12,2),
"INSTANCE_ID" INTEGER NOT NULL,
"SESSION_ID" INTEGER NOT NULL);
ALTER TABLE "EDITINV" ADD CONSTRAINT "PK_EDITINV" PRIMARY KEY
(SESSION_ID, INSTANCE_ID);
Here's an excerpt from the log when the table goes active:
SELECT ALL EDITINV.*
FROM EDITINV
WHERE SESSION_ID = 6
ORDER BY EDITINV.SESSION_ID ASC
, EDITINV.INSTANCE_ID ASC
PLAN (EDITINV ORDER PK_EDITINV
INDEX (PK_EDITINV))
FIELDS = [ Version 1 SQLd 29 SQLn
64
EDITINV.DATE = <NIL>
EDITINV.CODE = <NIL>
EDITINV."Serv ID" = <NIL>
EDITINV.DESCRIPTION = <NIL>
EDITINV.QTY = <NIL>
EDITINV.AMOUNT = <NIL>
EDITINV."Base Price" = <NIL>
EDITINV."Tax Code" = <NIL>
EDITINV.TAX = <NIL>
EDITINV.EXTENDED = <NIL>
EDITINV.CREW = <NIL>
EDITINV.ZONE = <NIL>
EDITINV.ROUTE = <NIL>
EDITINV.COST = <NIL>
EDITINV.SCHEDULED = <NIL>
EDITINV."Qty Used" = <NIL>
EDITINV."Man Hours" = <NIL>
EDITINV."Old Date" = <NIL>
EDITINV."Old Code" = <NIL>
EDITINV."Old Serv ID" = <NIL>
EDITINV."Old Qty" = <NIL>
EDITINV."Old Amount" = <NIL>
EDITINV."Old Base Price" = <NIL>
EDITINV."Old Tax Code" = <NIL>
EDITINV."Old Tax" = <NIL>
EDITINV."Old Qty Used" = <NIL>
EDITINV."Old Man Hours" = <NIL>
EDITINV.INSTANCE_ID = <NIL>
EDITINV.SESSION_ID = <NIL> ]
I don't know if this is sigificant, but fields such
as "Date", "Qty", "Description" and other one-token names are all
shown in the log as upper case, whereas fields like "Qty Used" is
properly quoted.
Does this ring any bells with anyone?
Michael D. Spence
Mockingbird Data Systems, Inc.