Autor Beitrag
peppi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 65


delphi 7
BeitragVerfasst: Di 25.03.03 11:12 
Hallo,

würde gern eine Fortschrittsanzeige in mein Programm einbauen. Hab's mit der ProgressBar bereits auf diese Weise versucht:

ausblenden volle Höhe Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
procedure TForm1.SpeedButton1Click(Sender: TObject);
var i:integer;
begin
 with DataModule2.temp_1 do
   begin
    close;
    try
      with  SQL do
        begin
        Clear;
        ADD('drop table temp_1');
        end;
       DataModule2.temp_1.Open;
       for i:=0 to DataModule2.temp_1.RecordCount -1 do
       ProgressBar1.Stepit;
       ExecSQL;
       except
       end;
    with DataModule2.temp_1 do
     begin
     close;
       with  SQL do
         begin
         Clear;
         ADD('create table temp_1');
         ADD(' (FELD1 int,');
         ADD('  FELD2 char(6),');
         ADD('  FELD3 datetime) ');
         end;
       ExecSQL;
     end;
    with DataModule2.temp_1 do
     begin
     close;
     with SQL do
       begin
       clear;
       ADD('insert into temp_1');
       ADD('select FELD1, FELD2, FELD3');
       ADD('from tabelle1');
       end;
      ExecSQL;
     end; ...

u.s.w

wie man sieht, wird die query erst zur Laufzeit bei ButtonClick gefüllt. Also hab ich die Query geöffnet nachdem ich den SQL-Text zugewiesen habe. Aber so scheint das nicht zu funktionieren :lol: ... ich krieg auch keine Exception, das Programm stürzt einfach ab. Geht das mit der ProgressBar bei ner Datenbankanwendung überhaupt?? In der Online-Hilfe find ich fast auschließlich Tipps für Webanwendungen und so. Hoffe ihr könnt mir da weiterhelfen!!

Liebe Grüße

Jana
ShadowCaster
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 312



BeitragVerfasst: Di 25.03.03 11:30 
Holla... nichts gehen deinen Quellcode, nur warum 2 Datenmodule? Benutzt du 2 Datenbanken? Normalerweise definiert man sich eine read- und eine write-transaktion und eine Query für die Abfragen.

Ist bei dir datamoduleX.temp_1 jetzt eine Query oder eine Transaktion? Ich glaube es reicht hier nicht, nur den Quellcode zu posten. Ein paar Erklärungen zu den Datenmodulen fehlen, was du für Komponenten drinnen hast.

So kann ich leider nicht helfen. :(
ShadowCaster
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 312



BeitragVerfasst: Di 25.03.03 11:54 
jetzt hab ich glaub ich den Fehler oder schonmal einen.

Du solltest normalerweise ein Datenmodul.ibquery.transaction.commit;
machen, bevor du Daten in die neu erstellte Tabelle einfügst, es sei denn die IB-Query steht auf Autocommit


Zuletzt bearbeitet von ShadowCaster am Di 25.03.03 11:55, insgesamt 1-mal bearbeitet
peppi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 65


delphi 7
BeitragVerfasst: Di 25.03.03 11:54 
Ich hab nur ein Datenmodul. Bin da ganz am Anfang als ich mit dem Prog angefangen hab vielleicht etwas durcheinander gekommen, aber es heißt eben DataModule2. Ist aber nur eins :D

2 Datenbanken benutze ich übrigens auch. Die eine steht fest im Quellcode weil diese immer gleich bleibt (hier werden Daten rein geschrieben) und die andere wird über eine ComboBox ausgewählt. Der Eintrag der ComboBox wird dann meiner DB-Komponent im Datenmodul zugewiesen. Mit dieser DB-Komponente sind dann meine Querys verbunden. Ich hab mir mehrere angelegt weil das für mich erstmal übersichtlicher war. Hinter dem OnClick-Ereigniss des Buttons liegen ziemlich viele SQL-Anweisungen die der Reihen nach ausgeführt werden müssen.

DataModule2.temp_1 ist eine Query :wink:

Insgesamt liegen im Datenmodul nur eine DB-Komponente und Querys. Dachte zu Anfang ich bräuchte mehr :lol:

Auf dem Formular liegen nur eine ComboBox und ein SpeedButton, naja ... und ein "Close"-Button :lol:

Hoffe das hat dir etwas weiter geholfen!

LG Jana
ShadowCaster
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 312



BeitragVerfasst: Di 25.03.03 12:00 
wenn du noch am Anfang des Projektes stehst, dann gib mir einfach deine Emailadresse oder ich geb dir nachher einen Downloadlink wo ich dir ein Grundgerüst mit Erklärungen schicke, wie du so ein Projekt richtig aufziehst. So wie ich sehe, bist du neu im Bereich mit den Interbasekomponenten. Das ist kein Problem. Spätestens um 13 Uhr solltest du das Projekt von mir haben ;)