var
sqltext1,sqltext2:Ansistring;
begin
sqltext1:= 'select '
+'表名 = D.name,'
+'表说明 = case when A.colorder = 1 then ISNULL(F.VALUE, '''') else ''nil'' end,'
+'字段序号 = A.COLORDER, '
+'字段名 = A.name, '
+'标识 = case when columnproperty(A.ID,A.name, ''isidentity'') = 1 then ''Y'' else ''N'' end, '
+'主键 = case when exists( '
+' select 1 from SYSOBJECTS '
+' where XTYPE = ''PK'' and PARENT_OBJ=A.ID '
+' and name IN ( '
+' select name from SYSINDEXES'
+' where INDID IN ( '
+' select INDID from SYSINDEXKEYS '
+' where ID = A.ID and COLID = A.COLID '
+' ) '
+' ) '
+' ) then ''Y'' else ''N'' end,'
+'类型 = B.name, '
+'占用字节数 = A.LENGTH,'
+'长度=COLUMNPROPERTY(a.id,a.name, ''PRECISION''),'
+'小数位数 = ISNULL(columnproperty(A.ID,A.name, ''SCALE''),0),'
+'允许空 = case when A.ISNULLABLE=1 then ''Y'' else ''N'' end, '
+'预设值 = ISNULL(E.TEXT, ''nil''), '
+'字段说明 = ISNULL(G.[VALUE], ''nil'') '
+' from SYSCOLUMNS A '
+' left join SYSTYPES B on A.XUSERTYPE = B.XUSERTYPE '
+'inner join SYSOBJECTS D on A.ID = D.ID and D.XTYPE = ''U'' and D.name <> ''DTPROPERTIES'''
+' left join SYSCOMMENTS E on A.CDEFAULT = E.ID'
+' left join sys.extended_properties G on A.ID = G.major_id and A.COLID = G.minor_id '
+' left join sys.extended_properties F on D.ID = F.major_id and F.minor_id = 0 ';sqltext2 := 'select * from userinfo';with ADOQueryX do
begin
Close;
SQL.clear;
SQL.Text:=sqltext1; //请问为什么运行sqltext1会提示 "未指定的错误",
// 而运行sqltext2 就没有问题,sqltext1 我在sql 调试器中已经试过,可以正常运行
memo1.Text:=SQL.Text;
Open;
end;
end;
sqltext1,sqltext2:Ansistring;
begin
sqltext1:= 'select '
+'表名 = D.name,'
+'表说明 = case when A.colorder = 1 then ISNULL(F.VALUE, '''') else ''nil'' end,'
+'字段序号 = A.COLORDER, '
+'字段名 = A.name, '
+'标识 = case when columnproperty(A.ID,A.name, ''isidentity'') = 1 then ''Y'' else ''N'' end, '
+'主键 = case when exists( '
+' select 1 from SYSOBJECTS '
+' where XTYPE = ''PK'' and PARENT_OBJ=A.ID '
+' and name IN ( '
+' select name from SYSINDEXES'
+' where INDID IN ( '
+' select INDID from SYSINDEXKEYS '
+' where ID = A.ID and COLID = A.COLID '
+' ) '
+' ) '
+' ) then ''Y'' else ''N'' end,'
+'类型 = B.name, '
+'占用字节数 = A.LENGTH,'
+'长度=COLUMNPROPERTY(a.id,a.name, ''PRECISION''),'
+'小数位数 = ISNULL(columnproperty(A.ID,A.name, ''SCALE''),0),'
+'允许空 = case when A.ISNULLABLE=1 then ''Y'' else ''N'' end, '
+'预设值 = ISNULL(E.TEXT, ''nil''), '
+'字段说明 = ISNULL(G.[VALUE], ''nil'') '
+' from SYSCOLUMNS A '
+' left join SYSTYPES B on A.XUSERTYPE = B.XUSERTYPE '
+'inner join SYSOBJECTS D on A.ID = D.ID and D.XTYPE = ''U'' and D.name <> ''DTPROPERTIES'''
+' left join SYSCOMMENTS E on A.CDEFAULT = E.ID'
+' left join sys.extended_properties G on A.ID = G.major_id and A.COLID = G.minor_id '
+' left join sys.extended_properties F on D.ID = F.major_id and F.minor_id = 0 ';sqltext2 := 'select * from userinfo';with ADOQueryX do
begin
Close;
SQL.clear;
SQL.Text:=sqltext1; //请问为什么运行sqltext1会提示 "未指定的错误",
// 而运行sqltext2 就没有问题,sqltext1 我在sql 调试器中已经试过,可以正常运行
memo1.Text:=SQL.Text;
Open;
end;
end;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货