ado+access,在access库中添加一个表。

时间:2022-12-28 21:43:18
该怎么写?这样似乎不对啊。
 with adotable_accessdb do
    begin
    active:=false;  //关闭数据集;
    databasename:='sales';
    tabletype:=ft.....   //????
    tablename:=edit_tablename.Text;
    //添加字段;
    with fielddefs do
    begin
       clear;
       with addfielddef do
       begin
         name:='goodsid';
         datatype:=char;
         size:=30;
       end;
    end;
    end;

7 个解决方案

#1


该怎么写?这样似乎不对啊。
 with adotable_accessdb do
    begin
    active:=false;  //关闭数据集;
    databasename:='sales';
    tabletype:=ftaccess;
    tablename:=edit_tablename.Text;
    //添加字段;
    with fielddefs do
    begin
       clear;
       with addfielddef do
       begin
         name:='goodsid';///有错 应有变化 如 g1 g2 g3 g4 
         datatype:=char;
         size:=30;
       end;
    end;
    createTable;///加入
    end;

#2


我连你的需要是什么也没有看明白,如果你是要创建一个新表的话,没有这么麻烦吧:
用ADOQUERY来做就很快了:
adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.add('create table :tablename');
adoquery1.paramters.parambyname('tablename').value:=edit_tablename.text;
adoquery1.execsql;

#3


var tablex:TTable;
begin 
tablex:=TTable.create;
Tablx.databasename:='yourdatabasename';
Tablex.tablename:='thetableyouwannacreate';
tablex.fielddef.clear;
tablex.fielddef.add('fieldname1',ftfloat,0,True);
tablex.fielddef.add('fieldname2',ftString,10,False);
******
tablex.create;



1。放一个TQUERY控件QUERY1,正确设置DATABASE属性(要求是一个ACCESS数据库);
2。with Query1 do
   begin
Close;
        sql.clear;
sql.add('Create Table myTable(my_NO smallint Constraint Primay key,my_data smallint)');
execsql;//my_NO是主键
  end;
3。删除表格
  with Query1 do
   begin
Close;
        sql.clear;
        sql.add('drop Table myTable');
        execsql;//不要用Open,否则出错,上同
  end;

#4


对啊,怎么把adoquery给忘了,
我是要在已有的access数据库sales中新建一个表。
不过用adoquery1.sql.add('create table :tablename');构造的表的类型是access的么?而且它被保存到哪儿了?

#5


加入数据源,当然就是在阿ACCESS中了。

#6


呵呵,看它的连接啊

#7


ok,明白了。
谢谢大家!

#1


该怎么写?这样似乎不对啊。
 with adotable_accessdb do
    begin
    active:=false;  //关闭数据集;
    databasename:='sales';
    tabletype:=ftaccess;
    tablename:=edit_tablename.Text;
    //添加字段;
    with fielddefs do
    begin
       clear;
       with addfielddef do
       begin
         name:='goodsid';///有错 应有变化 如 g1 g2 g3 g4 
         datatype:=char;
         size:=30;
       end;
    end;
    createTable;///加入
    end;

#2


我连你的需要是什么也没有看明白,如果你是要创建一个新表的话,没有这么麻烦吧:
用ADOQUERY来做就很快了:
adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.add('create table :tablename');
adoquery1.paramters.parambyname('tablename').value:=edit_tablename.text;
adoquery1.execsql;

#3


var tablex:TTable;
begin 
tablex:=TTable.create;
Tablx.databasename:='yourdatabasename';
Tablex.tablename:='thetableyouwannacreate';
tablex.fielddef.clear;
tablex.fielddef.add('fieldname1',ftfloat,0,True);
tablex.fielddef.add('fieldname2',ftString,10,False);
******
tablex.create;



1。放一个TQUERY控件QUERY1,正确设置DATABASE属性(要求是一个ACCESS数据库);
2。with Query1 do
   begin
Close;
        sql.clear;
sql.add('Create Table myTable(my_NO smallint Constraint Primay key,my_data smallint)');
execsql;//my_NO是主键
  end;
3。删除表格
  with Query1 do
   begin
Close;
        sql.clear;
        sql.add('drop Table myTable');
        execsql;//不要用Open,否则出错,上同
  end;

#4


对啊,怎么把adoquery给忘了,
我是要在已有的access数据库sales中新建一个表。
不过用adoquery1.sql.add('create table :tablename');构造的表的类型是access的么?而且它被保存到哪儿了?

#5


加入数据源,当然就是在阿ACCESS中了。

#6


呵呵,看它的连接啊

#7


ok,明白了。
谢谢大家!