1
{ $Id: registersqldb.pas 37536 2012-06-07 08:27:21Z zeljko $ }
1
{ $Id: registersqldb.pas 43618 2013-12-30 22:46:53Z maxim $ }
3
3
*****************************************************************************
5
* See the file COPYING.modifiedLGPL.txt, included in this distribution, *
6
* for details about the copyright. *
8
* This program is distributed in the hope that it will be useful, *
9
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
10
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
4
See the file COPYING.modifiedLGPL.txt, included in this distribution,
5
for details about the license.
12
6
*****************************************************************************
14
8
Author: Joost van der Sluis
22
16
{$DEFINE HASMYSQL4CONNECTION}
23
17
{$DEFINE HASORACLECONNECTION}
24
{$DEFINE HASPQCONNECTION}
25
18
{$DEFINE HASSQLITE3CONNECTION}
28
{$IF FPC_FULLVERSION> 20402}
29
{$DEFINE HASMYSQL51CONNECTION}
30
{$DEFINE HASSQLPARSER}
21
{$IF FPC_FULLVERSION>=20602}
22
{$DEFINE HASSQLITE3CONNECTION} // Include for win64, if fpc > 2.6.2
25
{$IF FPC_FULLVERSION>= 20601}
26
{$DEFINE HASPQCONNECTION}
29
{$DEFINE HASPQCONNECTION}
33
34
{$IF FPC_FULLVERSION>= 20601}
34
35
{$DEFINE HASMYSQL55CONNECTION}
37
{$IF FPC_FULLVERSION>= 20601}
38
36
{$IF DEFINED(BEOS) OR DEFINED(HAIKU) OR DEFINED(LINUX) OR DEFINED(FREEBSD) OR DEFINED (NETBSD) OR DEFINED(OPENBSD) OR DEFINED(WIN32) OR DEFINED(WIN64)}
39
// MS SQL Server and Sybase ASE connectors were introduced in the FPC 2.7 development branch, and
40
// backported to 2.6.1
41
// Operating systems should match FPC packages\fcl-db\fpmake.pp
37
// MS SQL Server and Sybase ASE connectors were introduced in the FPC 2.7 development branch,
38
// and backported to 2.6.1. Operating systems should match FPC packages\fcl-db\fpmake.pp
42
39
{$DEFINE HASMSSQLCONNECTION}
43
40
{$DEFINE HASSYBASECONNECTION}
44
{$IF FPC_FULLVERSION >= 20602}
45
// These were backported to FPC 2.6.2
49
{$DEFINE HASLIBLOADER}
52
{$IF FPC_FULLVERSION>= 20603}
53
{$DEFINE HASMYSQL56CONNECTION}
57
{$DEFINE HASIBCONNECTION}
50
63
Classes, SysUtils, LResources, db, sqldb,
52
{$IFDEF HASMSSQLCONNECTION}
53
// mssqlconn provide both MS SQL Server and Sybase ASE connectors.
64
{$IFDEF HASIBCONNECTION}
67
{$IFDEF HASMSSQLCONNECTION}
68
// mssqlconn provide both MS SQL Server and Sybase ASE connectors.
57
{$IFDEF HASPQCONNECTION}
60
{$IFDEF HASORACLECONNECTION}
72
{$IFDEF HASPQCONNECTION}
78
{$IFDEF HASORACLECONNECTION}
64
{$IFDEF HASMYSQL4CONNECTION}
65
mysql40conn, mysql41conn,
68
{$IFDEF HASMYSQL51CONNECTION}
82
{$IFDEF HASMYSQL4CONNECTION}
83
mysql40conn, mysql41conn,
71
{$IFDEF HASMYSQL55CONNECTION}
74
{$IFDEF HASSQLITE3CONNECTION}
87
{$IFDEF HASMYSQL55CONNECTION}
90
{$IFDEF HASMYSQL56CONNECTION}
93
{$IFDEF HASSQLITE3CONNECTION}
78
103
sqlstringspropertyeditordlg,
106
{$IFDEF HASLIBLOADER}
82
109
sqlscript, fpsqltree, fpsqlparser,
84
110
LazarusPackageIntf,
91
119
{ TSQLStringsPropertyEditor }
117
145
{%H-}ResourceName: string): string; override;
121
{$IFDEF HASSQLPARSER}
148
{ TSQLDBConnectorTypePropertyEditor }
150
TSQLDBConnectorTypePropertyEditor = class(TStringPropertyEditor)
152
function GetAttributes: TPropertyAttributes; override;
153
procedure GetValues(Proc: TGetStrProc); override;
154
procedure SetValue(const NewValue: ansistring); override;
157
{$IFDEF HASLIBLOADER}
159
{ TSQLDBLibraryLoaderLibraryNamePropertyEditor }
161
TSQLDBLibraryLoaderLibraryNamePropertyEditor=class(TFileNamePropertyEditor)
163
function GetFilter: String; override;
122
168
TSQLSyntaxChecker = Class(TComponent)
133
179
function CheckSource(Sender: TObject; var Handled: boolean): TModalResult;
134
180
Property SourceFileName : String Read FSFN;
136
{$ENDIF HASSQLPARSER}
138
183
procedure Register;
142
189
procedure RegisterUnitSQLdb;
144
RegisterComponents('SQLdb',[TSQLQuery,
191
RegisterComponents('SQLdb',[
148
196
{$IFDEF HASMSSQLCONNECTION}
151
199
{$IFDEF HASSYBASECONNECTION}
154
202
{$IFDEF HASPQCONNECTION}
157
208
{$IFDEF HASORACLECONNECTION}
161
212
{$IFDEF HASMYSQL4CONNECTION}
166
{$IFDEF HASMYSQL51CONNECTION}
169
218
{$IFDEF HASMYSQL55CONNECTION}
221
{$IFDEF HASMYSQL56CONNECTION}
172
224
{$IFDEF HASSQLITE3CONNECTION}
227
{$IFDEF HASIBCONNECTION}
236
{$IFDEF HASLIBLOADER}
185
249
SInterbaseDatabases = 'Interbase databases';
186
250
SSQLStringsPropertyEditorDlgTitle = 'Editing %s';
252
sLibraries = 'Shared libraries';
254
{ TSQLDBLibraryLoaderConnectionTypePropertyEditor }
256
function TSQLDBConnectorTypePropertyEditor.GetAttributes: TPropertyAttributes;
258
Result := [paMultiSelect, paSortList, paValueList, paRevertable];
261
procedure TSQLDBConnectorTypePropertyEditor.GetValues(Proc: TGetStrProc);
266
L:=TStringList.Create;
268
GetConnectionList(L);
269
for I:=0 to L.Count-1 do
276
procedure TSQLDBConnectorTypePropertyEditor.SetValue(const NewValue: ansistring);
280
ConnDef: TConnectionDef;
281
SrcEdit: TSourceEditorInterface;
283
if not LazarusIDE.BeginCodeTools then
285
SrcEdit := SourceEditorManagerIntf.ActiveEditor;
288
Code := TCodeBuffer(SrcEdit.CodeToolsBuffer);
291
Comp := GetComponent(0);
292
if Comp is TSQLConnector then
294
ConnDef := GetConnectionDef(NewValue);
295
if Assigned(ConnDef) then
296
CodeToolBoss.AddUnitToMainUsesSection(Code, ConnDef.UnitName, '');
301
{$IFDEF HASLIBLOADER}
302
{ TSQLDBLibraryLoaderLibraryNamePropertyEditor }
304
function TSQLDBLibraryLoaderLibraryNamePropertyEditor.GetFilter: String;
306
Result := sLibraries+'|*.'+SharedSuffix;
307
Result := Result+ '|'+ inherited GetFilter;
188
311
{ TDbfFileNamePropertyEditor }
190
313
function TSQLFirebirdFileNamePropertyEditor.GetFilter: String;
381
502
AChecker : TSQLSyntaxChecker;
382
{$ENDIF HASSQLPARSER}
384
504
procedure Register;
386
506
RegisterPropertyEditor(TypeInfo(AnsiString),
387
507
TIBConnection, 'DatabaseName', TSQLFirebirdFileNamePropertyEditor);
508
RegisterPropertyEditor(TypeInfo(AnsiString),
509
TSQLConnector, 'ConnectorType', TSQLDBConnectorTypePropertyEditor);
510
{$IFDEF HASLIBLOADER}
511
RegisterPropertyEditor(TypeInfo(AnsiString),
512
TSQLDBLibraryLoader, 'LibraryName', TSQLDBLibraryLoaderLibraryNamePropertyEditor);
513
RegisterPropertyEditor(TypeInfo(AnsiString),
514
TSQLDBLibraryLoader, 'ConnectionType', TSQLDBConnectorTypePropertyEditor);
388
516
RegisterPropertyEditor(TStrings.ClassInfo, TSQLQuery, 'SQL' , TSQLStringsPropertyEditor);
389
517
RegisterPropertyEditor(TStrings.ClassInfo, TSQLQuery, 'InsertSQL', TSQLStringsPropertyEditor);
390
518
RegisterPropertyEditor(TStrings.ClassInfo, TSQLQuery, 'DeleteSQL', TSQLStringsPropertyEditor);