CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  数据库相关

关于ADOX ,如何通过ADOX取得字段的默认值呢?

楼主yesin163(破网)2005-04-04 17:31:40 在 Delphi / 数据库相关 提问

如题:  
   
  我的代码:  
          adoxCatalog:   _Catalog;  
          adoxTable:   _Table;  
          adoxColumns:   Columns;  
   
  窗体创建时:   adoxcatalog   :=   cocatalog.Create;  
   
  打开表时   :  
      con1.GetTableNames(cbbTbl.Items,   false);  
      adoxcatalog.Set_ActiveConnection(con1.ConnectionObject);  
      adoxtable   :=   adoxcatalog.Tables[cbbTbl.ItemIndex   +   sysTblCount];  
      //系统表不显示  
      adoxcolumns   :=   adoxtable.Columns;  
   
  然后  
      with   adoxcolumns[colIndex]   do  
      begin  
          for   ipts   :=   Properties.Count   -   1   downto   0   do  
              if   properties.item[ipts].Name   =   'Default'   then  
              begin  
                  sResult   +   Properties[ipts].Value;    
                  break;  
              end;  
      end;  
      ShowMessage(sResult);  
   
  出现错误,提示  
   
  ---------------------------  
  Debugger   Exception   Notification  
  ---------------------------  
  Project   Project1.exe   raised   exception   class   EOleException   with   message   '对象或提供者不能执行所需的操作。'.   Process   stopped.   Use   Step   or   Run   to   continue.  
  ---------------------------  
  OK       Help        
  --------------------------- 问题点数:50、回复次数:4Top

1 楼yesin163(破网)回复于 2005-04-05 17:55:22 得分 0

没人回答?Top

2 楼chenylin(陈SIR)回复于 2005-04-05 20:17:44 得分 50

换个思路:  
  procedure   TDataModuleMain.SetDefault(DataSet:   TADODataSet;   PriField:   string);  
  Var   i:Integer;  
  begin  
      For   i:=0   to   DataSet.Fields.Count-1   do  
          begin  
          if   UpperCase(DataSet.Fields.Fields[i].FieldName)=UpperCase(PriField)   then   Continue;  
          Case   DataSet.Fields.Fields[i].DataType   of  
              ftString,ftFixedChar,   ftWideString   :  
                  DataSet.Fields.Fields[i].Value:='';  
              ftLargeint,ftSmallint,   ftInteger,   ftWord,   ftBoolean,   ftFloat,   ftCurrency,   ftBCD   :  
                  DataSet.Fields.Fields[i].Value:=0;  
          end;  
          end;  
  end;  
  Top

3 楼yesin163(破网)回复于 2005-04-07 13:32:07 得分 0

呵呵,不好意思,也许我没说清楚,我是说在sql里面已经设置好默认值了,我现在想用ADOX取出这个默认值,而不是设置默认值.  
   
  谢谢.请继续Top

4 楼yesin163(破网)回复于 2005-04-12 09:08:24 得分 0

没人回答??     郁闷   ...Top

相关问题

  • 如何取得字段的默认值?
  • SqlServer 怎样取得某表的主键名称 和 有默认值的字段的名称和其字段名!
  • cmp字段的默认值问题
  • 去掉字段的默认值问题?
  • nvarchar字段默认值的问题
  • 求一个SQL字段默认值
  • 如何取得数据库中某个字段的属性(类型,长度,默认值...)
  • 如何取得字段中所有不重复的绑定到DropDownList,并给DropDownList一个非绑定的默认值
  • 如何为datawindows中的字段设置默认值?
  • 请教如何将一个字段设成默认值now()

关键词

  • 默认值
  • adox
  • adoxcatalog
  • adoxtable
  • adoxcolumns
  • fields
  • ipts
  • dataset
  • begin
  • properties

得分解答快速导航

  • 帖主:yesin163
  • chenylin

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo