为何我用Table组件在SQL SERVER服务器的表中创建索引总是失败(100分)

  • 主题发起人 xiangfan_zhangk
  • 开始时间
X

xiangfan_zhangk

Unregistered / Unconfirmed
GUEST, unregistred user!
为何我用Table组件在SQL SERVER服务器的表中创建索引总是失败,表确定无误
 
用Table组件不能创建索引吧!!!!
如果要创建索引,可以用ADOX中的TABLE对象创建!!!
给你例子!
可以利用ADOX对象!
开发平台或客户端需要安装MDAC 2.1数据库引擎,你可以从微软公司http://www.microsoft.com/data下载,也可以在安装IE5.0中选择定制安装“动态数据绑定”选项。
  在Delphi IDE中选择菜单Project/Import Type Library,出现Import Type Library对话框,选择“Microsoft ADO Ext. 2.x for DDL and Security”,
将Class Name中TTable改为TADOXTable(因为TTable组件在Delphi中已经存在并注册);选择“Microsof Jet and Replication Object 2.x Library”。
然后单击“Install”安装,便在Delphi的Imports目录下生成ADOX_TLB.pas和JRO_TLB.pas两个文件。在Unit文件的Uses中加入ComObj、ADOX_TLB、JRO_TLB,
就可以通过COM操作ADOX和JRO对象了。
  打开ADOX_TLB.Pas文件,可以看到定义的接口有_Catalog、_Table、_Index等。

使用ADOX和JRO的例子。
  建立一个工程项目,在Form1Uses中加入ComObj、ADOX_TLB、JRO_TLB,添加三个按钮:btnCreateDB和btnCompactDB,用于实现创建数据库、创建数据表和压缩数据库功能。
  1.创建数据库、数据表和索引。
  procedure TForm1.btnCreateDBClick(Sender:TObject);
  var
  Catalog:_Catalog;//定义为_Catalog的接口类型
  Table:_Table;
  Index:_Index;
  strCon:string;//定义连接字符串
  begin
  Catalog:=CreateComObject(Class-Catalog) as _Catalog;
  //建立Catalog实例,也可以用 Catalog:=CoCatalog.Create;
  strCon:='Provider=Microsoft.Jet.OleDB.4.0;'
  //通过Jet OleDb直接操作Access数据库
  +'Data Source=d:/ComTest/myDb.mdb;'
  //数据库位置
  +'Jet OLEDB:Engine Type=5;'
  //Jet 4.x格式,如为4,则Jet 3.x格式
  +'Locale Identifier=0x0804;'
   //支持简体中文(一定要有)
  +'Jet OLEDB:Database Password=mypwd';
  //加入密码
  Catalog.Create(strCon); //建立数据库
  {建立数据表和索引}
  catalog._Set_ActiveConnection(strCon);
  //连接到数据库
  with Catalog do
  begin //建立数据表
  Table:=Create Com Object(Class-Table) as _Table; //建立Table实例
  with Table do
  begin
  Name:='Tel';
  Columns.Append('Name',adVarWChar,8);
  //数据类型详见MDAC SDK
  Columns.Append('Phone',adVarWchar,20);
  Index:=CreateComObject(Class_Index) as _Index; //建立索引
  with Index do
  begin
  Name:='MyIndex';
  Columns.Append('Name',adVarWchar,8);
  end;
  Indexes.Append(Index,EmptyParam);
  end;
  Tables.Append(Table);
  end;
  end;
 
谢谢sdhxdjw
有没有其他的解决方法啊?
我不太想用第三方控件,除非我走投无路了!
 
还不如用 adotable,
索引随便你改。
 
多人接受答案了。
 
顶部