Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi DB Grid Einträge duplizieren & .. (https://www.delphipraxis.net/140619-db-grid-eintraege-duplizieren.html)

jaenzen 22. Sep 2009 10:39

Datenbank: Firebird • Version: 2.0 • Zugriff über: IB-Expert

DB Grid Einträge duplizieren & ..
 
Guten Morgen,
ich bräuchte mal eure Hilfe weil ich nicht weiterkomme.


1. Wie kann ich Einträge in einem DBGrid duplizieren? (Datenbankebene)
2. Wie kann ich beim speichern eines Strings in eine Datenbank überprüfen, ob ein bestimmter Teil des Strings schon vorhanden ist bei den anderen Einträgen in der Spalte.
3. Wie kann ich Datensätze nach der höchsten Versionsnummer durchsuchen? Beispiel:

4 datenbankeinträge

id name
0 Projekt 1.0
1 Projekt 1.1
2 Projekt 1.2
3 Projekt 1.3

In meinem programm kann ich in einem Projektladenfenster ein projekt öffnen. beim laden wird das projekt dupliziert (damit der gespeicherte Stand nicht überschrieben werden kann). Das dup. Projekt soll eine höhere Version zugewiesen bekommen (hier 1.4) als vorhanden ist, egal welches Projekt geladen wird. Meine jetztige Prozedure rechnet immer nur eins hoch (zb. wenn ich 1.1 lade .. generiert er 1.2, obwohl es 1.4 sein soll, weil ich in meiner proz. ja bevor ich das projekt duplizier auf 1.1 zugreife und daher die versionsnr habe und die einfach + 0.1 rechne :/.. quasi durchsuch ich die datenbank nicht nach der höchsten vorhandenen versionsnr weil ich nich weiss wie das geht)

(sry konnte das iwie schlecht ausdrücken was ich meine)

thx

mkinzler 22. Sep 2009 11:25

Re: DB Grid Einträge duplizieren & ..
 
Zitat:

1. Wie kann ich Einträge in einem DBGrid duplizieren? (Datenbankebene)
SQL-Code:
Insert into ... select ...
Zitat:

2. Wie kann ich beim speichern eines Strings in eine Datenbank überprüfen, ob ein bestimmter Teil des Strings schon vorhanden ist bei den anderen Einträgen in der Spalte.
SQL-Code:
Select ... containing
Zitat:

3. Wie kann ich Datensätze nach der höchsten Versionsnummer durchsuchen? Beispiel:
SQL-Code:
select max( version) from <Tabelle> group by name;

jaenzen 23. Sep 2009 06:31

Re: DB Grid Einträge duplizieren & ..
 
guten morgen!
danke .. punkt 2 und 3 war in null komma nixs gemacht.

an punkt 1 hänge ich noch. also nehmen wir mal an ich habe ein dbgrid mit 5 einträgen und möchte sie nun per buttonklick alle duplizieren (halt nur neue id). wie ich einen einzelnen dupliziere weiss ich. wäre nett wenn ihr mir noch mal auf die sprünge helfen würdet. danke!

mfg

hoika 23. Sep 2009 07:02

Re: DB Grid Einträge duplizieren & ..
 
Hallo,

Zitat:

ein dbgrid mit 5 einträgen
Du weisst schon, dass diese 5 Records in einer Tabelle sind.

Zitat:

wie ich einen einzelnen dupliziere weiss ich
Wo ist dann das Problem ?
Was heisst duplizieren genau ?

Ich würde das mit einer StringList machen,
die speichert die Ids der 5 Einträge
Delphi-Quellcode:
var
  StrList: TStringList;
  DataSet: TDataSet;
begin
  StrList:= TStringList.Create;

  DataSet:= Tab11; / Query1, was immer du als Grundlage des DBGrid hast

  DataSet.First;
  while not DataSet.EOF do
  begin
    StrList.Add(DataSet.FieldByName('Id').AsString;
  end;

  for i:= 0 to StrList.Count-1 do
  begin
    Dupliziere (StrToint(StrList[i]));
  end;
end;

procedure Dupliziere(theId: Integer);
begin
 // finde Datensatz
  Query1
  'select * from TableXXX where id='+IntToStr(theId)
   Open;
   Close

 // daten anhängen  
  Query2 
  insert into ...

  Oder mit einer Query insert into tableXXX  select

end;
Ja, man könnte auch eine eigene separate Transaktion benutzen (MGA ausnutzen),
aber ich denek, das wäre für dich zu kompliziert.


Heiko

Heiko

end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:09 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz