chore: 首次簽入 Thinkyu ASP.NET 專案
- 加入 Visual Studio / ASP.NET .gitignore - 排除建置輸出、IDE 設定、NuGet packages、大型 MSI 安裝檔
This commit is contained in:
@@ -0,0 +1,180 @@
|
||||
unit Unit1;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||||
Dialogs, StdCtrls, Grids, DBGrids, DB, ADODB, ExtCtrls, wdbreg, DBClient,
|
||||
Provider;
|
||||
|
||||
type
|
||||
TForm1 = class(TForm)
|
||||
ADOConnection1: TADOConnection;
|
||||
ADODataSet1: TADODataSet;
|
||||
Memo1: TMemo;
|
||||
DataSource1: TDataSource;
|
||||
ADODataSet2: TADODataSet;
|
||||
DataSource2: TDataSource;
|
||||
Panel1: TPanel;
|
||||
DBGrid2: WDBGRID;
|
||||
DBGrid1: WDBGRID;
|
||||
Splitter1: TSplitter;
|
||||
Splitter2: TSplitter;
|
||||
DataSetProvider1: TDataSetProvider;
|
||||
ClientDataSet1: TClientDataSet;
|
||||
ClientDataSet1MAXItem: TAggregateField;
|
||||
Panel2: TPanel;
|
||||
Button1: TButton;
|
||||
Button2: TButton;
|
||||
Button3: TButton;
|
||||
ADODataSet2MaxItem: TAggregateField;
|
||||
ClientDataSet1CDSDesigner: TWideStringField;
|
||||
ClientDataSet1CDSDesigner2: TSmallintField;
|
||||
ClientDataSet1CDSDesigner3: TWideStringField;
|
||||
ClientDataSet1CDSDesigner4: TWideStringField;
|
||||
ClientDataSet1CDSDesigner5: TSmallintField;
|
||||
ClientDataSet1CDSDesigner6: TSmallintField;
|
||||
ClientDataSet1PK: TWideStringField;
|
||||
ClientDataSet1FK: TWideStringField;
|
||||
ClientDataSet1CDSDesigner7: TWideStringField;
|
||||
ClientDataSet1CDSDesigner8: TWideStringField;
|
||||
ClientDataSet1CDSDesigner9: TWideStringField;
|
||||
ClientDataSet1CDSDesigner10: TWideStringField;
|
||||
ADODataSet2DSDesigner: TWideStringField;
|
||||
ADODataSet2DSDesigner2: TSmallintField;
|
||||
ADODataSet2DSDesigner3: TWideStringField;
|
||||
ADODataSet2DSDesigner4: TWideStringField;
|
||||
ADODataSet2DSDesigner5: TSmallintField;
|
||||
ADODataSet2DSDesigner6: TSmallintField;
|
||||
ADODataSet2PK: TWideStringField;
|
||||
ADODataSet2FK: TWideStringField;
|
||||
ADODataSet2DSDesigner7: TWideStringField;
|
||||
ADODataSet2DSDesigner8: TWideStringField;
|
||||
ADODataSet2DSDesigner9: TWideStringField;
|
||||
ADODataSet2DSDesigner10: TWideStringField;
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
||||
procedure ListBox1Click(Sender: TObject);
|
||||
procedure ADODataSet1AfterScroll(DataSet: TDataSet);
|
||||
procedure Button1Click(Sender: TObject);
|
||||
procedure ClientDataSet1AfterInsert(DataSet: TDataSet);
|
||||
procedure ClientDataSet1AfterPost(DataSet: TDataSet);
|
||||
private
|
||||
procedure GenerateCreateSQL;
|
||||
{ Private declarations }
|
||||
public
|
||||
{ Public declarations }
|
||||
end;
|
||||
|
||||
var
|
||||
Form1: TForm1;
|
||||
|
||||
implementation
|
||||
|
||||
{$R *.dfm}
|
||||
|
||||
procedure TForm1.FormCreate(Sender: TObject);
|
||||
var i: integer;
|
||||
begin
|
||||
ADOConnection1.Connected := True;
|
||||
ADODataSet1.Open;
|
||||
ADODataSet2.Open;
|
||||
//ClientDataSet1.Open;
|
||||
end;
|
||||
|
||||
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
|
||||
begin
|
||||
ADODataSet2.Close;
|
||||
ADODataSet1.Close;
|
||||
ADOConnection1.Connected := False;
|
||||
end;
|
||||
|
||||
procedure TForm1.ListBox1Click(Sender: TObject);
|
||||
begin
|
||||
//if ListBox1.ItemIndex = -1 then
|
||||
// Exit;
|
||||
|
||||
//ADODataSet1.Active := False;
|
||||
//ADODataSet1.CommandText := Format('SELECT * FROM [%S]', [ListBox1.Items[ListBox1.ItemIndex]]);
|
||||
//ADODataSet1.Active := True;
|
||||
|
||||
//GenerateCreateSQL;
|
||||
end;
|
||||
|
||||
procedure TForm1.GenerateCreateSQL;
|
||||
var recno: integer;
|
||||
s: string;
|
||||
fieldName, fieldType: string;
|
||||
aLength, aDecimal: integer;
|
||||
begin
|
||||
Memo1.Lines.Clear;
|
||||
Memo1.Lines.Append(Format('CREATE TABLE %s (', [ADODataSet2.FieldByName('表格名稱').AsString]));
|
||||
|
||||
ClientDataSet1.DisableControls;
|
||||
ClientDataSet1.First;
|
||||
recno := 1;
|
||||
while not ClientDataSet1.Eof do
|
||||
begin
|
||||
fieldName := ClientDataSet1.FieldByName('欄位名稱').AsString;
|
||||
fieldType := ClientDataSet1.FieldByName('型態').AsString;
|
||||
aLength := ClientDataSet1.FieldByName('長度').AsInteger;
|
||||
aDecimal := ClientDataSet1.FieldByName('小數').AsInteger;
|
||||
s := Format(' %s %s', [fieldName, fieldType]);
|
||||
|
||||
if fieldType = 'DECIMAL' then
|
||||
s := s + Format(' (%d, %d)', [aLength, aDecimal])
|
||||
else if Pos(fieldType, 'CHAR,NCHAR,VARCHAR,NVARCHAR') > 0 then
|
||||
s := s + Format(' (%d)', [aLength]);
|
||||
|
||||
if ClientDataSet1.FieldByName('PK').AsString = 'V' then
|
||||
s := s + ' NOT NULL ';
|
||||
|
||||
if recno < ClientDataSet1.RecordCount then
|
||||
s := s + ' ,'
|
||||
else
|
||||
s := s + ' )';
|
||||
Memo1.Lines.Append(s);
|
||||
Inc(recno);
|
||||
ClientDataSet1.MoveBy(1);
|
||||
end;
|
||||
Memo1.Lines.Append('GO');
|
||||
|
||||
ClientDataSet1.First;
|
||||
ClientDataSet1.EnableControls;
|
||||
end;
|
||||
|
||||
procedure TForm1.ADODataSet1AfterScroll(DataSet: TDataSet);
|
||||
begin
|
||||
ClientDataSet1.Close;
|
||||
ADODataSet2.DisableControls;
|
||||
ADODataSet2.Close;
|
||||
ADODataSet2.Parameters.ParamValues['表格名稱'] := ADODataSet1.FieldValues['表格名稱'];
|
||||
ADODataSet2.Open;
|
||||
ClientDataSet1.Open;
|
||||
ADODataSet2.EnableControls;
|
||||
end;
|
||||
|
||||
procedure TForm1.Button1Click(Sender: TObject);
|
||||
begin
|
||||
GenerateCreateSQL;
|
||||
end;
|
||||
|
||||
procedure TForm1.ClientDataSet1AfterInsert(DataSet: TDataSet);
|
||||
begin
|
||||
if VarIsNull(ClientDataSet1.FieldByName('MAXItem').Value) then
|
||||
//ClientDataSet1.FieldByName('項次').AsInteger := 1
|
||||
ADODataSet2.FieldByName('項次').AsInteger := 1
|
||||
else
|
||||
//ClientDataSet1.FieldByName('項次').AsInteger := ClientDataSet1.FieldByName('MAXItem').Value + 1;
|
||||
ADODataSet2.FieldByName('項次').AsInteger := ClientDataSet1.FieldByName('MAXItem').Value + 1;
|
||||
//ClientDataSet1.FieldByName('表格名稱').AsString := ADODataSet1.FieldValues['表格名稱'];
|
||||
ADODataSet2.FieldByName('表格名稱').AsString := ADODataSet1.FieldValues['表格名稱'];
|
||||
end;
|
||||
|
||||
procedure TForm1.ClientDataSet1AfterPost(DataSet: TDataSet);
|
||||
//var i: integer;
|
||||
begin
|
||||
//i := ClientDataSet1.ApplyUpdates(0);
|
||||
end;
|
||||
|
||||
end.
|
||||
Reference in New Issue
Block a user