如何判断字段是否存在?

麦子VISA 2004-10-29 09:40:22
如何判断?
...全文
199 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
chinaandys 2004-10-29
  • 打赏
  • 举报
回复
create procedure isname
@name varchar(30)
as
begin
select [name] from syscolumns where id=object_id('tmp')
where [name]=@name
end
officecn 2004-10-29
  • 打赏
  • 举报
回复
楼上几位说得都有道理,你还可以使用ADOX去读取表结构。
使用之前先用Import Type引入ADOX
whythinkwhy 2004-10-29
  • 打赏
  • 举报
回复
Function ColumnExists(DataSet:TDateSet;sColumn:String):Boolean; 好像应该改为
Function ColumnExists(adoDataSet:TADODateSet;sColumn:String):Boolean; 下面引用的也应该是ADODateSet 你前面定义的是TADODateSet

麦子VISA 2004-10-29
  • 打赏
  • 举报
回复
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,DB,ADODB, Grids, DBGrids, StdCtrls;

type
TForm1 = class(TForm)
ADOConnection1: TADOConnection;
ADODataSet1: TADODataSet;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
Function ColumnExists(DataSet:TDateSet;sColumn:String):Boolean;

public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}
Function TForm1.ColumnExists(DataSet:TDateSet; sColumn:String):Boolean;
var
T:TField;
begin
T:=DataSet.FindField(sColumn);
if Assigned(T) then Result:=true else Result:=false;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
ADODataSet1.close;
ADODataSet1.CommandText:='select * from Dic_City';
ADODataSet1.Open;
if ColumnExists(ADODataSet1,'Code') then
showmessage('OK');
end;

end.
---------------------
ERROR:'Undeclared identifier:'TDataSet''
麦子VISA 2004-10-29
  • 打赏
  • 举报
回复
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, ImgList, ComCtrls, ToolWin, Grids, DBGrids, StdCtrls,
ExtCtrls;
-------------------------
我的引用
Rail100 2004-10-29
  • 打赏
  • 举报
回复

uses ADO, DB;
麦子VISA 2004-10-29
  • 打赏
  • 举报
回复
function HaveFileld(Query:TDataSet;AFieldName:String):boolean;
-----------------------
我在单元中定义该函数,出错了,TDATASET类型未定义,是不是还需要引用什么东西的吧?
coeltdit 2004-10-29
  • 打赏
  • 举报
回复
ADOTABLE1.Fields.CheckFieldName();
raineyquanter 2004-10-29
  • 打赏
  • 举报
回复
function HaveFileld(Query:TDataSet;AFieldName:String):boolean;
var i:integer;
begin
Result:=False;
for i:=0 to Query.Fields.Count-1 do
begin
Result:=Result or (Query.Fields.Fields[i].DisplayName=AFieldName);
end;
end;
aiirii 2004-10-29
  • 打赏
  • 举报
回复
Table1.Fields.FindField()

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧