--- a/generatesqldlg.pp +++ b/generatesqldlg.pp @@ -83,6 +83,7 @@ FActivateCalled: Boolean; Function IndentString : string; Function SQLKeyWord(aKeyWord : TSQLKeyWord) : String; + procedure GenSelectSQL(const TableName : string; KeyFields, SelectFields, SQL: TStrings); procedure GenDeleteSQL(const TableName : string; KeyFields, SQL: TStrings); procedure GenInsertSQL(const TableName : string; UpdateFields, SQL: TStrings); procedure GenModifySQL(const TableName : string; KeyFields, UpdateFields, SQL: TStrings); @@ -185,6 +186,35 @@ Result:=GetQuoted(aTable)+'.'+Result; end; +procedure TGenerateSQLForm.GenSelectSQL(const TableName: string; KeyFields, SelectFields, SQL: TStrings); + +var + MaxLen,I: integer; + L,FN: string; + isNotLast : Boolean; + +begin + MaxLen:=seLineLength.Value; + SQL.Clear; + SQL.Add(Format('%s', [SQLKeyWord(skselect)])); { Do not localize } + L:=IndentString; + for I := 0 to SelectFields.Count-1 do + begin + isNotLast:=IMaxLen) or (not IsNotLast) then + begin + SQL.Add(L); + L:=IndentString; + end; + end; + SQL.Add(Format('%s %s', [SQLKeyWord(skFrom),GetQuoted(TableName)])); { Do not localize } +end; + + procedure TGenerateSQLForm.GenDeleteSQL(const TableName: string; KeyFields, SQL: TStrings); begin SQL.Clear; @@ -354,6 +384,7 @@ try GetSelectedItems(LBFields, UpdateFields); TableName := CBTables.Text; + GenSelectSQL(TableName, KeyFields, UpdateFields, MSelect.Lines); GenDeleteSQL(TableName, KeyFields, MDelete.Lines); GenInsertSQL(TableName, UpdateFields, Minsert.Lines); GenModifySQL(TableName, KeyFields, UpdateFields, MUpdate.Lines); @@ -491,20 +522,8 @@ LBFields.Items:=aFields; end; if not Assigned(Dataset) then exit; - For I:=0 to FDataset.FieldDefs.Count-1 do - begin - Idx:=LBFields.Items.IndexOf(FDataset.FieldDefs[i].Name); - if Idx>=0 then - LBFields.Selected[Idx]:=true - end; - For I:=0 to FDataset.Fields.Count-1 do - if ((Dataset.UpdateMode=upWhereKeyOnly) and (pfInKey in FDataset.Fields[i].ProviderFlags)) or - (Dataset.UpdateMode=upWhereAll) then - begin - Idx:=LBKeyFields.Items.IndexOf(FDataset.Fields[i].FieldName); - if (Idx>=0) then - LBKeyFields.Selected[Idx]:=true; - end; + LBFields.SelectAll; + LBKeyFields.Selected[0] := true; end; procedure TGenerateSQLForm.CBTablesChange(Sender: TObject);