Jakane - Mi 04.05.11 13:17
Titel: Delphi und Firebird für Anfänger
Hallo liebe Delphi-Helfer
Ich arbeite jetzt vlt 2 Wochen mit Delphi 5 (vorher und nach wie vor Lazarus) und wollte ein kleines Übungsprogramm schreiben.
Grundlage dafür ist eine bereits existierende Datenbank mit 2 Tabellchen.
Einmal Projekt mit ProjektNr, ProjektName und Hinweis
und einmal Kontrolle mit Kontroll_ID, ProjektNr, Status, Datum und Bemerkung.
Wie man sieht keine große Sache, in IBExpert die Datenbank aktuell halten ist kein Problem.
Jetzt möchte ich das in mein Übungsprogramm stecken.
Allerdings hab ich weder Delphi gelernt, noch jemanden zur Hand der mir irgendwas erklären könnte und manche Tutorials sind nichtmal die Zeit des Anklickens für mich wert, weil ich sie nicht verstehe...
Ich habe auf meiner Form:
TIBDatabase,
TIBTransaction,
TIBTable,
TDataSource,
TIBQuery,
TIBUpdateSQL und natürlich TDB's die meine Daten wiedergeben können.
SQL-Anweisung
1: 2: 3: 4: 5: 6: 7:
| Select K.Kontroll_ID, K.Datum, K.Status, K.Bemerkung, P.ProjektNr, P.ProjektName, P.Hinweis From Kontrolle K left outer join Projekt P on (K.ProjektNummer = P.ProjektNr) where K.Datum = '02.05.2011' order by K.Kontroll_ID |
So.
Schön und gut, wenn ich mein Programm starte sehe ich demnach auch nur Daten vom 02.05.2011.
Mit SQL's arbeiten ist aber auch weniger mein Problem.
Mein Problem ist:
Ich kann meine Daten zwar sehen, aber ich will damit ja
1. neue Datensätze erstellen und
2. vorhandene Datensätze bearbeiten
Ich weiss nicht wie das mit dem UpdateSQL funktionieren soll.
Ich weiss nicht was ich wo eintragen muss damit ich Daten einfügen / bearbeiten kann.
Und ich weiss auch nicht, wie das ganze dann auch schön in meiner Datenbank ankommt :(
Ich denke das umfangreichere Hilfestellungen werden und bedanke mich im vorraus für jeden Beitrag.
MfG Jakane
Moderiert von
Klabautermann: SQL-Tags eingefügt.
Coffeecoder - Mi 04.05.11 14:00
Hallo,
Ich habe zwar nicht mit der TIBDatabase gearbeitet, aber ich kann dir vielleicht schon einen Tipp geben was deine Probleme angeht:
1)
SQL-Anweisung
1: 2:
| INSERT INTO Projekt P (P.ProjektName, P.Hinweis) VALUES ('Neues Projekt', 'Projekt-Hinweis') |
Deine ProjektNr sollte automatisch inkrementiert werden.
2)
SQL-Anweisung
1: 2: 3:
| UPDATE Projekt P SET P.ProjektName='Neuer Name für das Projekt', P.Hinweis='Neuer Hinweis für das Projekt' WHERE P.ProjektNr=50 |
Ich hoffe, dass dir das bisschen weiterhilft.
Wenn du weiter Fragen hast, sag mir Bescheid.
Mfg Coffeecoder
Moderiert von
Klabautermann: SQL-Tags eingefügt.
Jakane - Mi 04.05.11 14:57
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| For PNr:= 1 to 5 do Begin ShowMessage(IntToStr(Pnr)); IBKontrolle.Open; IBKontrolle.Insert; IBKontrolle.FieldByName('ProjektNummer').AsString := IntToStr(PNr); IBKontrolle.FieldByName('Datum').AsString := DateToStr(Now); IBKontrolle.FieldByName('BackUp_OK').AsString := 'N'; IBKontrolle.Post; IBKontrolle.Close; |
Das ist meine Einstellung, bekomme auch ganz artig 5 neue Datensätze, nur ein Problem
PNr in meiner Datenbank ist grundsätzlich 1, dabei sollte der bedingt durch die For-Schleife hochzählen.
Kann mir jemand verraten was ich vergessen habe? :?
Moderiert von
Klabautermann: Delphi-Tags hinzugefügt.