AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL-String zu lang ?
Thema durchsuchen
Ansicht
Themen-Optionen

SQL-String zu lang ?

Ein Thema von Smiley · begonnen am 24. Feb 2008 · letzter Beitrag vom 27. Feb 2008
 
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#15

Re: SQL-String zu lang ?

  Alt 25. Feb 2008, 10:40
Hallo Smiley,

auch von mir alles Gute zu deinem Geburtstag.

Und noch ein paar Anmerkungen zu diesem Thread: Für das Duplizieren eines einzigen Datensatzes ist SQL nicht erste Wahl, insbesondere wenn du den für den neuen Datensatz automatisch vergebenen Schlüssel benötigst. Was deine Datenmodellierung angeht, so hoffe ich einfach mal, dass dir jemand zum Geburtstag ein gutes Buch zu diesem Thema geschenkt hat.

Delphi-Quellcode:
function DuplicateRecord(
    ds: TCustomADODataSet;
    pkName: string;
    pkValue: Variant; // null means current record
    fieldNames: TStrings = nil // nil means no field restrictions
): Variant;
var
  dsClone: TADODataSet;
  f: TFields;
  i: Integer;
begin
  if not ds.IsEmpty
  and ((pkValue = null) or ds.Locate(pkName, pkValue, [])) then
  begin
    dsClone := TADODataSet.Create(ds.Owner);
    dsClone.Clone(ds);
    f := ds.Fields;
    ds.DisableControls;
    try
      ds.Insert;
      for i := 0 to Pred(ds.FieldCount) do
        if not SameText(f[i].FieldName, pkName)
        and (not Assigned(fieldNames) or (fieldNames.IndexOf(f[i].FieldName) >= 0)) then
          f[i].Value := dsClone.FieldByName(f[i].FieldName).Value;
      ds.Post;
      Result := ds.FieldByName(pkName).Value;
    finally
      ds.EnableControls;
      dsClone.Free;
    end;
  end else Result := null;
end;
Freundliche Grüße
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz