You've already forked lazarus-ccr
Initial import
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@338 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
95
components/tvplanit/source/vpsqlparadoxdialect.pas
Normal file
95
components/tvplanit/source/vpsqlparadoxdialect.pas
Normal file
@@ -0,0 +1,95 @@
|
||||
{*********************************************************}
|
||||
{* VPSQLPARADOXDIALECT.PAS 1.03 *}
|
||||
{*********************************************************}
|
||||
|
||||
{* ***** BEGIN LICENSE BLOCK ***** *}
|
||||
{* Version: MPL 1.1 *}
|
||||
{* *}
|
||||
{* The contents of this file are subject to the Mozilla Public License *}
|
||||
{* Version 1.1 (the "License"); you may not use this file except in *}
|
||||
{* compliance with the License. You may obtain a copy of the License at *}
|
||||
{* http://www.mozilla.org/MPL/ *}
|
||||
{* *}
|
||||
{* Software distributed under the License is distributed on an "AS IS" basis, *}
|
||||
{* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License *}
|
||||
{* for the specific language governing rights and limitations under the *}
|
||||
{* License. *}
|
||||
{* *}
|
||||
{* The Original Code is TurboPower Visual PlanIt *}
|
||||
{* *}
|
||||
{* The Initial Developer of the Original Code is TurboPower Software *}
|
||||
{* *}
|
||||
{* Portions created by TurboPower Software Inc. are Copyright (C) 2002 *}
|
||||
{* TurboPower Software Inc. All Rights Reserved. *}
|
||||
{* *}
|
||||
{* Contributor(s): *}
|
||||
{* Hannes Danzl *}
|
||||
{* *}
|
||||
{* ***** END LICENSE BLOCK ***** *}
|
||||
|
||||
{This unit was provided by Hannes Danzl and is used here with permission }
|
||||
|
||||
|
||||
// a sql dialect class for paradox
|
||||
unit VPSQLParadoxDialect;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
VPSQLDialect, VPDbIntf, dbtables, db, sysutils;
|
||||
|
||||
type
|
||||
// a sql dialect class for paradox
|
||||
TVPParadoxSQLDialect = class(TBaseSQLDialect)
|
||||
protected
|
||||
// override to use 'create table "%TableName%" (%Fields%)' since paradox
|
||||
// can have the fileextension in the tablename
|
||||
function GetCreateSyntax: String; override;
|
||||
// return the right strings
|
||||
function SQLGetColumnDef(const aFieldDef: TFieldDef): String; override;
|
||||
// override to avoid abstract error
|
||||
procedure EnsureDatabaseExists; virtual;
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
procedure TVPParadoxSQLDialect.EnsureDatabaseExists;
|
||||
begin
|
||||
// do nothing
|
||||
end;
|
||||
|
||||
function TVPParadoxSQLDialect.GetCreateSyntax: String;
|
||||
begin
|
||||
result:='create table "%TableName%" (%Fields%)';
|
||||
end;
|
||||
|
||||
function TVPParadoxSQLDialect.SQLGetColumnDef(
|
||||
const aFieldDef: TFieldDef): String;
|
||||
var
|
||||
aTypeName: String;
|
||||
begin
|
||||
case aFieldDef.DataType of
|
||||
ftInteger: aTypeName:='INTEGER';
|
||||
ftFloat: aTypeName:='NUMERIC';
|
||||
ftString:
|
||||
if aFieldDef.Size<256 then
|
||||
aTypeName:='VARCHAR('+inttostr(aFieldDef.Size)+')'
|
||||
else
|
||||
aTypeName:='BLOB(1,1)';
|
||||
ftBoolean: aTypeName:='BOOLEAN';
|
||||
ftDate: aTypeName:='DATE';
|
||||
ftTime: aTypeName:='TIME';
|
||||
ftDateTime: aTypeName:='TIMESTAMP';
|
||||
end; // case
|
||||
result:=aFieldDef.Name+' '+aTypeName;
|
||||
end;
|
||||
|
||||
function CreateParadoxDialect(InterfaceClass: String): TObject;
|
||||
begin
|
||||
result:=TVPParadoxSQLDialect.Create(nil);
|
||||
end;
|
||||
|
||||
initialization
|
||||
// IMPORTANT: register it
|
||||
sSQLDialectFactory.RegisterInterfaceType('Paradox', @CreateParadoxDialect);
|
||||
end.
|
Reference in New Issue
Block a user