Einzelnen Beitrag anzeigen

Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.289 Beiträge
 
Delphi 12 Athens
 
#3

AW: Mehrzeiligen Text zuweisen incl. '

  Alt 21. Sep 2020, 08:30
Moin...
eine andere Möglichkeit wäre das speichern der SQL außerhalb vom QT...in Ressourcen. https://www.delphipraxis.net/49505-s...einbinden.html

Tool:
PS: Ich liebe es. https://www.delphipraxis.net/190316-...e-creator.html

Vorteile:
* Das SQL ist eine Datei, die im bevorzugten Editor testbar ist. (Parameter müßten ggf. werttechnisch ergänzt werden )
* Alle SQL an einem Platz im Dateisystem und nicht über den QT oder DPR verteilt.

QT:
Delphi-Quellcode:
function TDatabaseBase.GetSQLByName(SQLName: string): string;
var
  SQLStream: TResourceStream;
  SQLStrings: TStringList;
  SQLStringsDecrypt: TStringList;
begin
  Result := '';
  SQLStrings := TStringList.Create;
  try
    SQLStringsDecrypt := TStringList.Create;
    try
      SQLStream := TResourceStream.Create(HInstance, SQLName, PWideChar(conDatabaseResourceGroupString)); // MSSQL2012 z.B. entsprechend des Ressourcennamens den du vergeben hast
      try
        try
          SQLStrings.LoadFromStream(SQLStream);
          SQLStringsDecrypt.Text := TToolsCrypt.Decrypt(SQLStrings.Text, conKey); // nur bei verschlüsseltem SQL nötig
          Result := SQLStringsDecrypt.Text;
        except
          Result := '';
        end;
      finally
        SQLStream.Free;
      end;
    finally
      SQLStringsDecrypt.Free;
    end;
  finally
    SQLStrings.Free;
  end;
end;
...
procedure TDatabase.FillList(List: TBlubbFieldList; TableName: string);
var
  I: Integer;
  Qry: TFDQuery;
  Field: TBlubbField;
begin
  Qry := CreateQuery;
  try
    Qry.SQL.Text := Format(GetSQLByName('TABLE_FIELDLIST'), [TableName]);
    Qry.Open;
    if not Qry.Eof then
    begin
      List.Clear;
      for I := 0 to Qry.Fields.Count - 1 do
      begin
        Field := TBlubbField.Create;
        Field.FieldIndex := I;
        Field.FieldName := Qry.Fields[I].FieldName;
        Field.Fieldype := Qry.Fields[I].DataType;
        List.Add(Field);
      end;
    end;
  finally
    Qry.Free;
  end;
end;
Miniaturansicht angehängter Grafiken
sql.jpg  

Geändert von haentschman (21. Sep 2020 um 08:49 Uhr)
  Mit Zitat antworten Zitat