用Delphi把TABLE產生SQL語句 (30分)

  • 主题发起人 主题发起人 meet
  • 开始时间 开始时间
M

meet

Unregistered / Unconfirmed
GUEST, unregistred user!
請教各們大蝦,怎樣用Delphi把一個TABLE的結構產生SQL語句,然后用文本文件保存起來
 
QUERY可以使用SQL语句啊
 
谁能解决这个问题我在给300分!!

绝不食言!
 
是不是要产生insert into ……※……语句?
 
是不是要产生insert into ……※……我說不是這些,,,是表結構,生成這SQL文件后在SQL
運行就可以生成TABLE!
 
如果仅仅是你自己要,建议用PB7.0的DATABASE画板ROW菜单SAVE ROW AS……命令
如果是给客户用
那么
1.先select * from tab1;得到数据集
2.
pcocedure……
var
sql_all,sql:string;
i:integer;
begin

with 数据集 do
begin
first;
while not eof …
begin
sql := 'insert into tab1(…) values('; // for i := 0 to Table1.FieldCount - 1 do
//Info := Info + Table1.Fields.FieldName + #13#10;
//得到字段名列表
sql := sql + 数据集.Fields[0].asstring ;//根据字段类型决定是否加单引号
//字段类型:TField.DataType
for i:=0 to 数据集.fieldcount -1 do
sql := sql + ',' + 数据集.Fields.asstring ;//根据字段类型决定是否加单引号
sql := sql +')';//如果要分行加回车符号
sql_all:=sql_all+sql;
end;
end;
end;
 
原来这样,简单
 
嗯,我想你说的是crete table语句吧?
其实很多数据库工具都可以在建表之后,自动帮你创建建表的SQL语句。
在这方面,MS SQL Server就不错。你可以用它来试试。
其实,SQL语句并不是很复杂(相对Delphi来说),你完全可以找一些资料来看看,对着书上
的例子写些小数据库、存储过程等,应该很容易的。
 
如果是ORACLE:
1.在delphi的BDE引擎创建一个数据库别名连接到你的数据库
2.在delphi的SQL Explorer中打开数据库别名
3.点击table
4.点击text页框
 
Table1.Close;
Table1.TableName:=SrcFile.Text+'.DBF';
Table1.Open;
Name:=DstFile.Text;
List.Lines.Clear;
List.Lines.Add('Create Table '+Name);
List.Lines.Add('(');
With Table1 Do
Begin
For i:=0 to FieldCount-1 Do
Begin
S:='';
s:=S+Fields.Fieldname;
If length(S)<16 Then
S:=S+Space(16-length(S));
case (Fields.dataType) of
ftString: S:=S+' CHAR('+IntToStr(Fields.dataSize-1)+')';
ftInteger: s:=S+' Integer';
ftSmallInt: s:=S+' Integer';
ftFloat: s:=S+' Float';
ftdate: s:=S+' DateTime';
Else
s:=s+' ';
End;
S:=S+' NULL';
If i<FieldCount-1 Then
S:=S+',';
List.Lines.Add(s);
End;
List.Lines.Add(')');
List.Visible:=False;
List.Visible:=True;
End;
Button2.Enabled:=True;
Table1.Close;
 
我的方法针对对象型关系数据库有效
对pradox。access、foxpro、dbase等无效
 
:ugvanxk:
那关键字段呢?
 
接受答案了.
 
后退
顶部