Commit 52c1c2f4 authored by Sandro Camata Santana's avatar Sandro Camata Santana

Suporte postgre

parent 1c46e551
......@@ -30,7 +30,7 @@ const cBASE_USECASE_CLASS_FULL_PATH = MODELO + '::FrameworkModel::acuFrameworkPa
type
TDataBaseVendor = (dbvSQLServer, dbvOracle, dbvDB2);
TDataBaseVendor = (dbvSQLServer, dbvOracle, dbvDB2, dbvPostgre);
//////////////////////////////////////////////////////////////////////////////
TCodeGenParams = class(TObject);
......@@ -284,20 +284,31 @@ begin
else if SameText(piDBColumnMap.AttributeTicket.DBType, 'text') then
case piDBVendor of
dbvSQLServer: lSQLColumnDBType := piDBColumnMap.AttributeTicket.DBType;
dbvOracle: lSQLColumnDBType := 'clob';
dbvDB2: lSQLColumnDBType := 'clob';
else
lSQLColumnDBType := 'clob';
lSQLColumnDBType := piDBColumnMap.AttributeTicket.DBType;
end
else if SameText(piDBColumnMap.AttributeTicket.DBType, 'datetime') then
case piDBVendor of
dbvSQLServer: lSQLColumnDBType := piDBColumnMap.AttributeTicket.DBType;
dbvOracle: lSQLColumnDBType := 'date';
dbvDB2: lSQLColumnDBType := 'timestamp';
dbvPostgre: lSQLColumnDBType := 'timestamp';
end
else if SameText(piDBColumnMap.AttributeTicket.DBType, 'image') then
case piDBVendor of
dbvSQLServer: lSQLColumnDBType := piDBColumnMap.AttributeTicket.DBType;
dbvOracle: lSQLColumnDBType := 'blob';
dbvDB2: lSQLColumnDBType := 'blob';
dbvPostgre: lSQLColumnDBType := 'bytea';
else
lSQLColumnDBType := 'blob';
lSQLColumnDBType := piDBColumnMap.AttributeTicket.DBType;
end
else if SameText(piDBColumnMap.AttributeTicket.DBType, 'blob') then
case piDBVendor of
dbvPostgre: lSQLColumnDBType := 'bytea';
else
lSQLColumnDBType := piDBColumnMap.AttributeTicket.DBType;
end
else
lSQLColumnDBType := piDBColumnMap.AttributeTicket.DBType;
......
object CodeGen: TCodeGen
Left = 2569
Left = 700
Height = 616
Top = 219
Top = 230
Width = 889
Caption = 'CodeGen'
ClientHeight = 616
......@@ -13,15 +13,15 @@ object CodeGen: TCodeGen
KeyPreview = True
OnShow = FormShow
Position = poScreenCenter
LCLVersion = '2.0.2.0'
LCLVersion = '2.1.0.0'
object PageControl1: TPageControl
Left = 0
Height = 616
Top = 0
Width = 889
ActivePage = TabSheet1
ActivePage = TabSheet6
Align = alClient
TabIndex = 0
TabIndex = 1
TabOrder = 0
object TabSheet1: TTabSheet
Caption = 'UseCase'
......@@ -2322,9 +2322,9 @@ object CodeGen: TCodeGen
Height = 590
Top = 0
Width = 881
ActivePage = TabSheet9
ActivePage = TabSheet12
Align = alClient
TabIndex = 0
TabIndex = 3
TabOrder = 0
object TabSheet9: TTabSheet
Caption = 'SQL Server'
......@@ -2871,42 +2871,588 @@ object CodeGen: TCodeGen
end
object TabSheet10: TTabSheet
Caption = 'Oracle'
ClientHeight = 560
ClientWidth = 869
ClientHeight = 564
ClientWidth = 873
ImageIndex = 1
object Panel11: TPanel
Left = 0
Height = 560
Height = 564
Top = 0
Width = 873
Align = alClient
BevelOuter = bvLowered
ClientHeight = 564
ClientWidth = 873
TabOrder = 0
object Panel12: TPanel
Left = 1
Height = 40
Top = 1
Width = 871
Align = alTop
ClientHeight = 40
ClientWidth = 871
TabOrder = 0
object SpeedButton7: TSpeedButton
Left = 9
Height = 28
Top = 6
Width = 105
Caption = 'Generate'
OnClick = SpeedButton7Click
end
end
inline memSQLOracle: TSynEdit
Left = 1
Height = 522
Top = 41
Width = 871
Align = alClient
Color = clWindow
Font.Color = clWindowText
Font.Height = -13
Font.Name = 'Courier New'
Font.Pitch = fpFixed
Font.Quality = fqNonAntialiased
ParentColor = False
ParentFont = False
TabOrder = 1
BorderStyle = bsNone
Gutter.Width = 23
Gutter.MouseActions = <>
RightGutter.Width = 0
RightGutter.MouseActions = <>
Highlighter = SynSQLSyn2
Keystrokes = <
item
Command = ecUp
ShortCut = 38
end
item
Command = ecSelUp
ShortCut = 8230
end
item
Command = ecScrollUp
ShortCut = 16422
end
item
Command = ecDown
ShortCut = 40
end
item
Command = ecSelDown
ShortCut = 8232
end
item
Command = ecScrollDown
ShortCut = 16424
end
item
Command = ecLeft
ShortCut = 37
end
item
Command = ecSelLeft
ShortCut = 8229
end
item
Command = ecWordLeft
ShortCut = 16421
end
item
Command = ecSelWordLeft
ShortCut = 24613
end
item
Command = ecRight
ShortCut = 39
end
item
Command = ecSelRight
ShortCut = 8231
end
item
Command = ecWordRight
ShortCut = 16423
end
item
Command = ecSelWordRight
ShortCut = 24615
end
item
Command = ecPageDown
ShortCut = 34
end
item
Command = ecSelPageDown
ShortCut = 8226
end
item
Command = ecPageBottom
ShortCut = 16418
end
item
Command = ecSelPageBottom
ShortCut = 24610
end
item
Command = ecPageUp
ShortCut = 33
end
item
Command = ecSelPageUp
ShortCut = 8225
end
item
Command = ecPageTop
ShortCut = 16417
end
item
Command = ecSelPageTop
ShortCut = 24609
end
item
Command = ecLineStart
ShortCut = 36
end
item
Command = ecSelLineStart
ShortCut = 8228
end
item
Command = ecEditorTop
ShortCut = 16420
end
item
Command = ecSelEditorTop
ShortCut = 24612
end
item
Command = ecLineEnd
ShortCut = 35
end
item
Command = ecSelLineEnd
ShortCut = 8227
end
item
Command = ecEditorBottom
ShortCut = 16419
end
item
Command = ecSelEditorBottom
ShortCut = 24611
end
item
Command = ecToggleMode
ShortCut = 45
end
item
Command = ecCopy
ShortCut = 16429
end
item
Command = ecPaste
ShortCut = 8237
end
item
Command = ecDeleteChar
ShortCut = 46
end
item
Command = ecCut
ShortCut = 8238
end
item
Command = ecDeleteLastChar
ShortCut = 8
end
item
Command = ecDeleteLastChar
ShortCut = 8200
end
item
Command = ecDeleteLastWord
ShortCut = 16392
end
item
Command = ecUndo
ShortCut = 32776
end
item
Command = ecRedo
ShortCut = 40968
end
item
Command = ecLineBreak
ShortCut = 13
end
item
Command = ecSelectAll
ShortCut = 16449
end
item
Command = ecCopy
ShortCut = 16451
end
item
Command = ecBlockIndent
ShortCut = 24649
end
item
Command = ecLineBreak
ShortCut = 16461
end
item
Command = ecInsertLine
ShortCut = 16462
end
item
Command = ecDeleteWord
ShortCut = 16468
end
item
Command = ecBlockUnindent
ShortCut = 24661
end
item
Command = ecPaste
ShortCut = 16470
end
item
Command = ecCut
ShortCut = 16472
end
item
Command = ecDeleteLine
ShortCut = 16473
end
item
Command = ecDeleteEOL
ShortCut = 24665
end
item
Command = ecUndo
ShortCut = 16474
end
item
Command = ecRedo
ShortCut = 24666
end
item
Command = ecGotoMarker0
ShortCut = 16432
end
item
Command = ecGotoMarker1
ShortCut = 16433
end
item
Command = ecGotoMarker2
ShortCut = 16434
end
item
Command = ecGotoMarker3
ShortCut = 16435
end
item
Command = ecGotoMarker4
ShortCut = 16436
end
item
Command = ecGotoMarker5
ShortCut = 16437
end
item
Command = ecGotoMarker6
ShortCut = 16438
end
item
Command = ecGotoMarker7
ShortCut = 16439
end
item
Command = ecGotoMarker8
ShortCut = 16440
end
item
Command = ecGotoMarker9
ShortCut = 16441
end
item
Command = ecSetMarker0
ShortCut = 24624
end
item
Command = ecSetMarker1
ShortCut = 24625
end
item
Command = ecSetMarker2
ShortCut = 24626
end
item
Command = ecSetMarker3
ShortCut = 24627
end
item
Command = ecSetMarker4
ShortCut = 24628
end
item
Command = ecSetMarker5
ShortCut = 24629
end
item
Command = ecSetMarker6
ShortCut = 24630
end
item
Command = ecSetMarker7
ShortCut = 24631
end
item
Command = ecSetMarker8
ShortCut = 24632
end
item
Command = ecSetMarker9
ShortCut = 24633
end
item
Command = EcFoldLevel1
ShortCut = 41009
end
item
Command = EcFoldLevel2
ShortCut = 41010
end
item
Command = EcFoldLevel3
ShortCut = 41011
end
item
Command = EcFoldLevel4
ShortCut = 41012
end
item
Command = EcFoldLevel5
ShortCut = 41013
end
item
Command = EcFoldLevel6
ShortCut = 41014
end
item
Command = EcFoldLevel7
ShortCut = 41015
end
item
Command = EcFoldLevel8
ShortCut = 41016
end
item
Command = EcFoldLevel9
ShortCut = 41017
end
item
Command = EcFoldLevel0
ShortCut = 41008
end
item
Command = EcFoldCurrent
ShortCut = 41005
end
item
Command = EcUnFoldCurrent
ShortCut = 41003
end
item
Command = EcToggleMarkupWord
ShortCut = 32845
end
item
Command = ecNormalSelect
ShortCut = 24654
end
item
Command = ecColumnSelect
ShortCut = 24643
end
item
Command = ecLineSelect
ShortCut = 24652
end
item
Command = ecTab
ShortCut = 9
end
item
Command = ecShiftTab
ShortCut = 8201
end
item
Command = ecMatchBracket
ShortCut = 24642
end
item
Command = ecColSelUp
ShortCut = 40998
end
item
Command = ecColSelDown
ShortCut = 41000
end
item
Command = ecColSelLeft
ShortCut = 40997
end
item
Command = ecColSelRight
ShortCut = 40999
end
item
Command = ecColSelPageDown
ShortCut = 40994
end
item
Command = ecColSelPageBottom
ShortCut = 57378
end
item
Command = ecColSelPageUp
ShortCut = 40993
end
item
Command = ecColSelPageTop
ShortCut = 57377
end
item
Command = ecColSelLineStart
ShortCut = 40996
end
item
Command = ecColSelLineEnd
ShortCut = 40995
end
item
Command = ecColSelEditorTop
ShortCut = 57380
end
item
Command = ecColSelEditorBottom
ShortCut = 57379
end>
MouseActions = <>
MouseTextActions = <>
MouseSelActions = <>
Lines.Strings = (
''
)
Options = [eoAutoIndent, eoBracketHighlight, eoEnhanceHomeKey, eoGroupUndo, eoHalfPageScroll, eoHideRightMargin, eoSmartTabs, eoTabsToSpaces, eoTrimTrailingSpaces, eoAltSetsColumnMode]
Options2 = [eoEnhanceEndKey, eoFoldedCopyPaste, eoOverwriteBlock, eoColorSelectionTillEol]
MouseOptions = [emAltSetsColumnMode, emCtrlWheelZoom]
VisibleSpecialChars = [vscSpace, vscTabAtLast]
ReadOnly = True
RightEdge = 0
ScrollBars = ssAutoBoth
SelectedColor.BackPriority = 50
SelectedColor.ForePriority = 50
SelectedColor.FramePriority = 50
SelectedColor.BoldPriority = 50
SelectedColor.ItalicPriority = 50
SelectedColor.UnderlinePriority = 50
SelectedColor.StrikeOutPriority = 50
BracketHighlightStyle = sbhsBoth
BracketMatchColor.Background = clNone
BracketMatchColor.Foreground = clNone
BracketMatchColor.Style = [fsBold]
FoldedCodeColor.Background = clNone
FoldedCodeColor.Foreground = clGray
FoldedCodeColor.FrameColor = clGray
MouseLinkColor.Background = clNone
MouseLinkColor.Foreground = clBlue
LineHighlightColor.Background = clNone
LineHighlightColor.Foreground = clNone
inline SynLeftGutterPartList1: TSynGutterPartList
object SynGutterMarks1: TSynGutterMarks
Width = 24
Visible = False
MouseActions = <>
end
object SynGutterLineNumber1: TSynGutterLineNumber
Width = 17
MouseActions = <>
MarkupInfo.Background = clBtnFace
MarkupInfo.Foreground = clNone
DigitCount = 2
ShowOnlyLineNumbersMultiplesOf = 1
ZeroStart = False
LeadingZeros = False
end
object SynGutterChanges1: TSynGutterChanges
Width = 4
MouseActions = <>
ModifiedColor = 59900
SavedColor = clGreen
end
object SynGutterSeparator1: TSynGutterSeparator
Width = 2
MouseActions = <>
MarkupInfo.Background = clWhite
MarkupInfo.Foreground = clGray
end
object SynGutterCodeFolding1: TSynGutterCodeFolding
Visible = False
MouseActions = <>
MarkupInfo.Background = clNone
MarkupInfo.Foreground = clGray
MouseActionsExpanded = <>
MouseActionsCollapsed = <>
end
end
end
end
end
object TabSheet11: TTabSheet
Caption = 'DB2'
ClientHeight = 564
ClientWidth = 873
ImageIndex = 2
object Panel14: TPanel
Left = 0
Height = 564
Top = 0
Width = 869
Width = 873
Align = alClient
BevelOuter = bvLowered
ClientHeight = 560
ClientWidth = 869
ClientHeight = 564
ClientWidth = 873
TabOrder = 0
object Panel12: TPanel
object Panel15: TPanel
Left = 1
Height = 40
Top = 1
Width = 867
Width = 871
Align = alTop
ClientHeight = 40
ClientWidth = 867
ClientWidth = 871
TabOrder = 0
object SpeedButton7: TSpeedButton
object SpeedButton8: TSpeedButton
Left = 9
Height = 28
Top = 6
Width = 105
Caption = 'Generate'
OnClick = SpeedButton7Click
OnClick = SpeedButton8Click
end
end
inline memSQLOracle: TSynEdit
inline memSQLDB2: TSynEdit
Left = 1
Height = 518
Height = 522
Top = 41
Width = 867
Width = 871
Align = alClient
Color = clWindow
Font.Color = clWindowText
......@@ -2918,11 +3464,11 @@ object CodeGen: TCodeGen
ParentFont = False
TabOrder = 1
BorderStyle = bsNone
Gutter.Width = 33
Gutter.Width = 23
Gutter.MouseActions = <>
RightGutter.Width = 0
RightGutter.MouseActions = <>
Highlighter = SynSQLSyn2
Highlighter = SynSQLSyn3
Keystrokes = <
item
Command = ecUp
......@@ -3415,44 +3961,43 @@ object CodeGen: TCodeGen
end
end
end
object TabSheet11: TTabSheet
Caption = 'DB2'
ClientHeight = 560
ClientWidth = 869
ImageIndex = 2
object Panel14: TPanel
object TabSheet12: TTabSheet
Caption = 'Postgre'
ClientHeight = 564
ClientWidth = 873
object Panel16: TPanel
Left = 0
Height = 560
Height = 564
Top = 0
Width = 869
Width = 873
Align = alClient
BevelOuter = bvLowered
ClientHeight = 560
ClientWidth = 869
ClientHeight = 564
ClientWidth = 873
TabOrder = 0
object Panel15: TPanel
object Panel17: TPanel
Left = 1
Height = 40
Top = 1
Width = 867
Width = 871
Align = alTop
ClientHeight = 40
ClientWidth = 867
ClientWidth = 871
TabOrder = 0
object SpeedButton8: TSpeedButton
object SpeedButton9: TSpeedButton
Left = 9
Height = 28
Top = 6
Width = 105
Caption = 'Generate'
OnClick = SpeedButton8Click
OnClick = SpeedButton9Click
end
end
inline memSQLDB2: TSynEdit
inline memSQLPostgre: TSynEdit
Left = 1
Height = 518
Height = 522
Top = 41
Width = 867
Width = 871
Align = alClient
Color = clWindow
Font.Color = clWindowText
......@@ -3468,7 +4013,7 @@ object CodeGen: TCodeGen
Gutter.MouseActions = <>
RightGutter.Width = 0
RightGutter.MouseActions = <>
Highlighter = SynSQLSyn3
Highlighter = SynSQLSyn4
Keystrokes = <
item
Command = ecUp
......@@ -3967,48 +4512,56 @@ object CodeGen: TCodeGen
object SynJavaSyn1: TSynJavaSyn
DefaultFilter = 'Java Files (*.java)|*.java'
Enabled = False
left = 710
top = 202
Left = 710
Top = 202
end
object SynSQLSyn1: TSynSQLSyn
DefaultFilter = 'SQL Files (*.sql)|*.sql'
Enabled = False
SQLDialect = sqlMSSQL2K
left = 396
top = 385
Left = 396
Top = 385
end
object SynFreePascalSyn1: TSynFreePascalSyn
Enabled = False
CompilerMode = pcmObjFPC
NestedComments = True
left = 710
top = 137
TypeHelpers = False
Left = 710
Top = 137
end
object SynCppSyn1: TSynCppSyn
DefaultFilter = 'C++ Files (*.c,*.cpp,*.h,*.hpp,*.hh)|*.c;*.cpp;*.h;*.hpp;*.hh'
Enabled = False
left = 708
top = 279
Left = 708
Top = 279
end
object SynSQLSyn2: TSynSQLSyn
DefaultFilter = 'SQL Files (*.sql)|*.sql'
Enabled = False
SQLDialect = sqlOracle
left = 391
top = 457
Left = 391
Top = 457
end
object SynSQLSyn3: TSynSQLSyn
DefaultFilter = 'SQL Files (*.sql)|*.sql'
Enabled = False
SQLDialect = sqlSybase
left = 396
top = 533
Left = 396
Top = 533
end
object SynXMLSyn1: TSynXMLSyn
DefaultFilter = 'XML Document (*.xml,*.xsd,*.xsl,*.xslt,*.dtd)|*.xml;*.xsd;*.xsl;*.xslt;*.dtd'
Enabled = False
WantBracesParsed = False
left = 807
top = 256
Left = 807
Top = 256
end
object SynSQLSyn4: TSynSQLSyn
DefaultFilter = 'SQL Files (*.sql)|*.sql'
Enabled = False
SQLDialect = sqlPostgres
Left = 472
Top = 533
end
end
......@@ -28,18 +28,23 @@ type
TCodeGen = class(TForm)
memCode: TSynEdit;
memSQLPostgre: TSynEdit;
memXSDIn: TSynEdit;
memXSDOut: TSynEdit;
memSQLServer: TSynEdit;
memSQLOracle: TSynEdit;
memSQLDB2: TSynEdit;
PageControl1: TPageControl;
Panel16: TPanel;
Panel17: TPanel;
SpeedButton9: TSpeedButton;
SynCppSyn1: TSynCppSyn;
SynFreePascalSyn1: TSynFreePascalSyn;
SynJavaSyn1: TSynJavaSyn;
SynSQLSyn1: TSynSQLSyn;
SynSQLSyn2: TSynSQLSyn;
SynSQLSyn3: TSynSQLSyn;
SynSQLSyn4: TSynSQLSyn;
SynXMLSyn1: TSynXMLSyn;
TabSheet1: TTabSheet;
Panel3: TPanel;
......@@ -50,6 +55,7 @@ type
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
PageControl2: TPageControl;
TabSheet12: TTabSheet;
TabSheet2: TTabSheet;
Panel5: TPanel;
Panel6: TPanel;
......@@ -108,6 +114,7 @@ type
procedure edtJavaPackageNameChange(Sender: TObject);
procedure SpeedButton7Click(Sender: TObject);
procedure SpeedButton8Click(Sender: TObject);
procedure SpeedButton9Click(Sender: TObject);
private
{ Private declarations }
fUtil: TUtil;
......@@ -348,6 +355,17 @@ begin
end;
end;
procedure TCodeGen.SpeedButton9Click(Sender: TObject);
begin
Screen.Cursor := crHourGlass;
try
memSQLPostgre.Clear;
memSQLPostgre.Lines.Text := Util.GerarFullSQLPreview(dbvPostgre);
finally
Screen.Cursor := crDefault;
end;
end;
function TCodeGen.SuggestFileName(piValue: string; piExtension: boolean = false): string;
var lFileName: string;
begin
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment