Board index » delphi » Create primary key dynamic using SQL (I use access databas)

Create primary key dynamic using SQL (I use access databas)

In my program I have this code

 ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('CREATE TABLE '+DelprojektnamnEdit.Text +'orderstock'+' (ID INTEGER, ProjektID integer, Artnr CHAR(30) NOT NULL,
Enummer CHAR(30) NOT NULL, Ytskiktkort CHAR(10) NOT NULL,'+
' Ytskikt CHAR(50) NOT NULL, Color CHAR(50) NOT NULL, Typ CHAR(50) NOT NULL, Kabelstegeunion INTEGER, Indelning CHAR(40) NOT
NULL, Segment CHAR(25) NOT NULL, Beteckning CHAR(50) NOT NULL, Amm INTEGER,'+
' Bmm INTEGER, Lmm INTEGER, Vikt INTEGER, Viktenhet CHAR(10) NOT NULL, Stdlangd INTEGER, Antal INTEGER, Summavikt DOUBLE,
F?rpackningsstorlek INTEGER, Summal?ngd INTEGER, AG INTEGER)');
  ADOQuery1.ExecSQL;

This creates a table with a specifik name.

My problem is:
How do I do to make ID INTEGER to be the primary key ....with autonumber  DYNAMICALLY?  Actully even autonumber is not neccessary..i just
want to make a primary key.

I get insufficient key information error...and I know that this is the problem...that I do not have any primary key.

best regards..

 

Re:Create primary key dynamic using SQL (I use access databas)


 ADOQuery1.SQL.Add('CREATE TABLE '+DelprojektnamnEdit.Text +'orderstock'+' (ID
INTEGER IDENTITY (1, 1) NOT NULL
, ProjektID integer
, Artnr CHAR(30) NOT NULL,
Enummer CHAR(30) NOT NULL, Ytskiktkort CHAR(10) NOT NULL,'+
' Ytskikt CHAR(50) NOT NULL, Color CHAR(50) NOT NULL, Typ CHAR(50) NOT NULL,
Kabelstegeunion INTEGER, Indelning CHAR(40) NOT
NULL, Segment CHAR(25) NOT NULL, Beteckning CHAR(50) NOT NULL, Amm INTEGER,'+
' Bmm INTEGER, Lmm INTEGER, Vikt INTEGER, Viktenhet CHAR(10) NOT NULL, Stdlangd
INTEGER, Antal INTEGER, Summavikt DOUBLE,
F?rpackningsstorlek INTEGER, Summal?ngd INTEGER, AG INTEGER
CONSTRAINT ID_PK PRIMARY KEY (ID)
)');

--
Brian Bushay (TeamB)
Bbus...@NMPLS.com

Re:Create primary key dynamic using SQL (I use access databas)


Solved it.  Forgot the ,   between AG INTEGER and CONSTRAINT (last line)

ADOQuery1.SQL.Add('CREATE TABLE '+DelprojektnamnEdit.Text +'orderstock'+' (ID  INTEGER IDENTITY (1, 1) NOT NULL  , ProjektID integer  ,
artnr CHAR(30) NOT NULL,
Enummer CHAR(30) NOT NULL, Ytskiktkort CHAR(10) NOT NULL,'+
 ' Ytskikt CHAR(50) NOT NULL, Color CHAR(50) NOT NULL, Typ CHAR(50) NOT NULL, Kabelstegeunion INTEGER, Indelning CHAR(40) NOT  
NULL, Segment CHAR(25) NOT NULL, Beteckning CHAR(50) NOT NULL, Amm INTEGER,'+
 ' Bmm INTEGER, Lmm INTEGER, Vikt INTEGER, Viktenhet CHAR(10) NOT NULL, Stdlangd
 INTEGER, Antal INTEGER, Summavikt DOUBLE,
 F?rpackningsstorlek INTEGER, Summal?ngd INTEGER, AG INTEGER ,  CONSTRAINT ID_PK PRIMARY KEY (ID) )');

Other Threads