* implementation of sqSupportEmptyDatabaseName from Laco, used in PostGres and MSSQL

git-svn-id: trunk@25584 -
This commit is contained in:
michael 2013-09-27 11:42:15 +00:00
parent d801548604
commit 48250dcafd
3 changed files with 6 additions and 18 deletions

View File

@ -314,7 +314,7 @@ end;
constructor TMSSQLConnection.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FConnOptions := FConnOptions + [sqEscapeRepeat];
FConnOptions := FConnOptions + [sqSupportEmptyDatabaseName, sqEscapeRepeat];
//FieldNameQuoteChars:=DoubleQuotes; //default
Ftds := DBTDS_UNKNOWN;
end;
@ -397,21 +397,9 @@ const
CURSOR_CLOSE_ON_COMMIT_OFF: array[boolean] of shortstring = ('SET CURSOR_CLOSE_ON_COMMIT OFF', 'SET CLOSE ON ENDTRAN OFF');
VERSION_NUMBER: array[boolean] of shortstring = ('SERVERPROPERTY(''ProductVersion'')', '@@version_number');
Var
B : Boolean;
begin
// Do not call the inherited method as it checks for a non-empty DatabaseName, empty DatabaseName=default database defined for login
// MVC: Inherited MUST be called to do housekeeping.
B:=DatabaseName='';
if B then
DatabaseName:='Dummy';
try
inherited DoInternalConnect;
finally
if B then
DatabaseName:='';
end;
// empty DatabaseName=default database defined for login
inherited DoInternalConnect;
InitialiseDBLib(DBLibLibraryName);

View File

@ -224,7 +224,7 @@ constructor TPQConnection.Create(AOwner : TComponent);
begin
inherited;
FConnOptions := FConnOptions + [sqSupportParams] + [sqEscapeRepeat] + [sqEscapeSlash];
FConnOptions := FConnOptions + [sqSupportParams, sqSupportEmptyDatabaseName, sqEscapeRepeat, sqEscapeSlash];
FieldNameQuoteChars:=DoubleQuotes;
VerboseErrors:=True;
FConnectionPool:=TThreadlist.Create;

View File

@ -24,7 +24,7 @@ uses SysUtils, Classes, DB, bufdataset, sqlscript;
type
TSchemaType = (stNoSchema, stTables, stSysTables, stProcedures, stColumns, stProcedureParams, stIndexes, stPackages, stSchemata);
TConnOption = (sqSupportParams,sqEscapeSlash,sqEscapeRepeat);
TConnOption = (sqSupportParams, sqSupportEmptyDatabaseName, sqEscapeSlash, sqEscapeRepeat);
TConnOptions= set of TConnOption;
TConnInfoType=(citAll=-1, citServerType, citServerVersion, citServerVersionString, citClientName, citClientVersion);
TStatementType = (stUnknown, stSelect, stInsert, stUpdate, stDelete,
@ -976,7 +976,7 @@ end;
procedure TSQLConnection.DoInternalConnect;
begin
if (DatabaseName = '') then
if (DatabaseName = '') and not(sqSupportEmptyDatabaseName in FConnOptions) then
DatabaseError(SErrNoDatabaseName,self);
end;