我用的是Delphi7.0和InterBase7.0
代码如下: MainForm.Q_E.Close;
MainForm.Q_E.sql.Clear;
T_N:='E_'+StringReplace(Edit11.Text, '-', '_', [rfReplaceAll]);
Sql_1:='CREATE TABLE '+T_N+' (P_NO VARCHAR(3),WELD_OB VARCHAR(100),WPS VARCHAR(4),WPS_1 VARCHAR(40),WPS_1_S VARCHAR(40),';
Sql_2:='....';
Sql_3:='....';
Sql_4:='....';
Sql_5:='....';
Sql_6:='P_H BOOLEAN,HTI VARCHAR(4),HTI_1 VARCHAR(3),HTI_1_M VARCHAR(20),HTI_2 VARCHAR(3),HTI_2_M VARCHAR(20),HTI_3 VARCHAR(3),HTI_3_M VARCHAR(20),INSP VARCHAR(40),REMARK VARCHAR(100),HJDE BOOLEAN)';
MainForm.Q_E.SQL.Add(Sql_1+Sql_2+Sql_3+Sql_4+Sql_5+Sql_6);
MainForm.Q_E.ExecSQL;PS:Q_E是TIBQuery我的思路是先动态建表,然后在一侧的TTreeView中显示所有表名,包括新建表,点击TTreeView中的表名,程序借助TIBTable和TDBCtrlGrid编辑新建表。遇到两个问题:
1.执行完上面的动态建表语句后,并不能立即建立表,必须将程序完全关闭后才能刷出刚刚新建的表,即使只关掉子窗口也不行。
2.在确认表建立之后,试图通过TIBTable和TDBCtrlGrid为新建表添加记录时,代码如下: MainForm.T_E.Close;
MainForm.T_E.TableName:='E_'+StringReplace(TreeView1.Selected.Text, '-', '_', [rfReplaceAll]);
MainForm.T_E.Active:=true;报错如下:Unknown SQL Data Type (590)求解答!万分感谢!
代码如下: MainForm.Q_E.Close;
MainForm.Q_E.sql.Clear;
T_N:='E_'+StringReplace(Edit11.Text, '-', '_', [rfReplaceAll]);
Sql_1:='CREATE TABLE '+T_N+' (P_NO VARCHAR(3),WELD_OB VARCHAR(100),WPS VARCHAR(4),WPS_1 VARCHAR(40),WPS_1_S VARCHAR(40),';
Sql_2:='....';
Sql_3:='....';
Sql_4:='....';
Sql_5:='....';
Sql_6:='P_H BOOLEAN,HTI VARCHAR(4),HTI_1 VARCHAR(3),HTI_1_M VARCHAR(20),HTI_2 VARCHAR(3),HTI_2_M VARCHAR(20),HTI_3 VARCHAR(3),HTI_3_M VARCHAR(20),INSP VARCHAR(40),REMARK VARCHAR(100),HJDE BOOLEAN)';
MainForm.Q_E.SQL.Add(Sql_1+Sql_2+Sql_3+Sql_4+Sql_5+Sql_6);
MainForm.Q_E.ExecSQL;PS:Q_E是TIBQuery我的思路是先动态建表,然后在一侧的TTreeView中显示所有表名,包括新建表,点击TTreeView中的表名,程序借助TIBTable和TDBCtrlGrid编辑新建表。遇到两个问题:
1.执行完上面的动态建表语句后,并不能立即建立表,必须将程序完全关闭后才能刷出刚刚新建的表,即使只关掉子窗口也不行。
2.在确认表建立之后,试图通过TIBTable和TDBCtrlGrid为新建表添加记录时,代码如下: MainForm.T_E.Close;
MainForm.T_E.TableName:='E_'+StringReplace(TreeView1.Selected.Text, '-', '_', [rfReplaceAll]);
MainForm.T_E.Active:=true;报错如下:Unknown SQL Data Type (590)求解答!万分感谢!
解决方案 »
- 关于edit焦点的问题
- fastreport 空白行补充及分页问题
- 问个小问题~关于pagecontrol
- 高分求解2!!!如果解开,我另开10贴给你加分!!!
- 在DBGrid中,如何判断焦点移动到了另一行?
- 用SQL对ACSEES日期时间字段进行查询
- 请问使用delphi能够开发wince下的程序吗?
- 关于Caret的问题,一定给分!
- delphi程序员进来谈谈你们的工作地点和薪水!(了解中国程序员的待遇)
- 很简单:) delphi补丁 D5EntUpdate 的key.
- 用delphi如何实现以下功能啊:禁止密码框的粘贴功能,还有密码不能只是数字,也不能只是字母
- DBCtrlGrid显示含有Boolean型字段InterBase数据表的问题
GO/****** Object: Table [dbo].[WL_XX] Script Date: 08/27/2010 13:46:07 ******/
SET ANSI_NULLS ON
GOSET QUOTED_IDENTIFIER ON
GOCREATE TABLE [dbo].[WL_XX](
[ID] [int] NOT NULL,
[LH] [nvarchar](50) NULL,
[PM] [nvarchar](50) NULL,
[LB] [nvarchar](50) NULL,
[WZ] [nvarchar](50) NULL,
[FLQH] [float] NULL,
[JLQH] [float] NULL,
[CZQH] [float] NULL,
[BZ] [nvarchar](50) NULL,
[USER] [nvarchar](50) NULL
) ON [PRIMARY]GO2.調用之: qry_BaseTemp.Close;
qry_BaseTemp.SQL.Text:=' exec 存儲過程名字 ';//也可以直接創建表(參考一)
qry_BaseTemp.OPEN;
意思我知道,关键建表能成功,说明字段的数据类型应该没问题(只有varchar、float和boolean三种),我在TDBCtrlGrid中只引用了两个字段,其数据类型都是varchar,为什么还会这样报错呢??
....
Sql_6:='P_H BOOLEAN,HTI VARCHAR(4),HTI_1 VARCHAR(3),HTI_1_M VARCHAR(20),HTI_2 VARCHAR(3),HTI_2_M VARCHAR(20),HTI_3 VARCHAR(3),HTI_3_M VARCHAR(20),INSP VARCHAR(40),REMARK VARCHAR(100),HJDE BOOLEAN)';
....
2.檢查一下這裡:
...
HJDE BOOLEAN
...說明:字段HJDE在delphi中的定義是布爾型boolean,而創建表時應該用bit類型...
[HCK] [bit] NULL,明白??了解??不建議你使用這種方法
我之前用BIT类型,但是报错:Specified domain or source column does not exist
我将Boolean型字段全部删除或修改成varchar就能成功引用,有人说应该将Boolean型改成Bit型,可这样一来根本无法成功建立数据表。求原因!PS:DBGrid也同样有这个问题。
谢谢楼上两位!