![]() | Products |
| Home » Technical Support » ElevateDB Technical Support » Frequently Asked Questions |
uses edbcomps, edbconfig, edbstring;
function CheckIdentifier(const Value: String): String;
begin
Result:=MakeValidIdentifier(Value);
if (Length(Result) > IDENTIFIER_LENGTH) then
Result:=Copy(Result,1,IDENTIFIER_LENGTH);
end;
function GetCreateTableStatement(DataSet: TEDBDataSet;
const TableName: String;
TemporaryTable: Boolean=False): String;
var
TempTableName: String;
TempSQL: TStrings;
I: Integer;
TempFieldName: String;
TempFieldSQL: String;
begin
TempSQL:=TStringList.Create;
try
TempTableName:=CheckIdentifier(TableName);
with DataSet do
begin
Open;
FieldDefs.Update;
if TemporaryTable then
TempSQL.Add('CREATE TEMPORARY TABLE '+QuotedString(TempTableName,'"'))
else
TempSQL.Add('CREATE TABLE '+QuotedString(TempTableName,'"'));
TempSQL.Add('(');
for I:=0 to FieldDefs.Count-1 do
begin
TempFieldName:=CheckIdentifier(FieldDefs[I].Name);
TempFieldSQL:=QuotedString(TempFieldName,'"')+' '+
UpperCaseString(FieldTypeToSQL(FieldDefs[I].DataType,
FieldDefs[I].Size));
{$IFDEF D10ORHIGHER}
if (FieldDefs[I].DataType in [ftWideString,ftFixedWideChar,
ftString,ftFixedChar,ftGUID,ftWideMemo,
ftMemo]) then
{$ELSE}
if (FieldDefs[I].DataType in [ftWideString,ftString,ftFixedChar,ftGUID,
ftMemo]) then
{$ENDIF}
TempFieldSQL:=TempFieldSQL+' COLLATE '+QuotedString(GetCollationForField(FieldDefs[I].Name),'"');
if (I < (FieldDefs.Count-1)) then
TempFieldSQL:=TempFieldSQL+',';
TempSQL.Add(TempFieldSQL);
end;
TempSQL.Add(')');
Result:=TempSQL.Text;
end;
finally
FreeAndNil(TempSQL);
end;
end;This web page was last updated on Wednesday, January 5, 2022 at 07:36 AM | Privacy Policy © 2025 Elevate Software, Inc. All Rights Reserved Questions or comments ? |

