AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL-Sanduhr bei Datenübermittlung bleibt bestehen
Thema durchsuchen
Ansicht
Themen-Optionen

SQL-Sanduhr bei Datenübermittlung bleibt bestehen

Ein Thema von Moin · begonnen am 7. Apr 2005 · letzter Beitrag vom 14. Apr 2005
Antwort Antwort
Moin

Registriert seit: 16. Dez 2003
Ort: Dresden
57 Beiträge
 
Delphi 7 Enterprise
 
#1

SQL-Sanduhr bei Datenübermittlung bleibt bestehen

  Alt 7. Apr 2005, 16:12
Datenbank: MySQL (PHPmyAdmin) • Version: ?? • Zugriff über: TTable
Hallo zusammen,
Ich muss für die Schule ein Programm schreiben, das die Schülerdaten (name, gwählte Kurse, Klasse) in eine PHPMyAdmin-Sql-DB über nimmt.

Mein Problem:
Der Quelltext funktioniert nicht richtig, die Daten werden zwar (meines Wissens) vollständig übertragen, ABER die SQL-Sanduhr welche bei der Datenübertragung angezeigt wird, verschwindet nicht (ca. 90 Datensätze werden eingefügt). Sonst tritt kein Fehler auf!


Daten werden Zeilenweise über eine Memo im Format:
Nr.;Name;Vorname;Klasse;LK 1;LK 2;GK 1;GK 2;GK 3;GK 4;GK 5;GK 6;GK 7;GK 8;GK 9
eingelesen.

Bsp.:
Code:
snr;Name;Vorname;Kl;LK 1;LK 2;GK 1;GK 2;GK 3;GK 4;GK 5;GK 6;GK 7;GK 8;GK 9
1;Mustermann;Martin;klA02;DEU;TE;EN;BK;WL/;GE;MA;PHY;INF;SP;
2;Musterfrau;Max;klB02;MAT;IS;DE;EN;RU;BK;WL/;GE;CH;IV;EP
Hier Mein Quelltext:
Delphi-Quellcode:
procedure TfMain.btnImportSClick(Sender: TObject);
    var i,k,z : integer;
    var ds,temp : string;
begin
     If memoS.Text <> ''
     Then Begin

          if cbS1.Checked // 1. Zeile überspringen??
          then i := 1
          else i := 0;

         While i <= memoS.Lines.Count Do //für jede Zeile
          If (memoS.Lines[i]<> '') AND (memoS.Lines[i] <> ' ') //Wenn Zeile nicht Leer
          Then
            BEGIN

            tabS.Append;
            z := 0;
            ds := memoS.Lines[i]; // Datensatz = Zeile
            If ds[length(ds)] <> ';//Wenn Zeile nicht mit ";" abgeschlossen, ";" anhängen
            Then ds := ds +';' ;

            temp := '';
            For k := 0 to length(ds) Do
             Begin
             If ds[k] = ';'
             Then begin
                  Case z of
                  1 : If Temp <> ''        //Beginnt mit 1, da SNR ignoriert wird
                       Then tabS.FieldValues ['name'] := temp;
                  2 : If Temp <> ''
                       Then tabS.FieldValues ['vorname'] := temp;
                  3 : If Temp <> ''
                       Then tabS.FieldValues ['klasse'] := temp;
                  4 : If Temp <> ''
                       Then tabS.FieldValues ['lk1'] := temp;
                  5 : If Temp <> ''
                       Then tabS.FieldValues ['lk2'] := temp;
                  6 : If Temp <> ''
                       Then tabS.FieldValues ['gk1'] := temp;
                  7 : If Temp <> ''
                       Then tabS.FieldValues ['gk2'] := temp;
                  8 : If Temp <> ''
                       Then tabS.FieldValues ['gk3'] := temp;
                  9 : If Temp <> ''
                       Then tabS.FieldValues ['gk4'] := temp;
                  10 : If Temp <> ''
                       Then tabS.FieldValues ['gk5'] := temp;
                  11 : If Temp <> ''
                       Then tabS.FieldValues ['gk6'] := temp;
                  12 : If Temp <> ''
                       Then tabS.FieldValues ['gk7'] := temp;
                  13 : If Temp <> ''
                       Then tabS.FieldValues ['gk8'] := temp;
                  14 : If Temp <> ''
                       Then tabS.FieldValues ['gk9'] := temp;
                  end;
                  temp:= '';
                  inc(z);
                  end
             Else if ds[k]<> '"'
                  then temp := temp + ds[k];
             End;
         //Passwort erstellen
            tabS.FieldValues ['passwort'] := 'katze'; //Platzhalter
         // Ende Passworerstellung
            tabS.Post;
            inc(i);
            END;
          End;
end;
Kann mir jemand Helfen??

danke im Vorraus
~~ an alln ekn & endn sparn! ~~
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: SQL-Sanduhr bei Datenübermittlung bleibt bestehen

  Alt 7. Apr 2005, 16:58
hallo

ein fehler ist mir sofort aufgefallen, weil der mir auch oft passiert:
While i <= memoS.Lines.Count Do muss heissen:
While i < memoS.Lines.Count -1 Do probier das mal aus und gib wieder bescheid.

gruessle
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Moin

Registriert seit: 16. Dez 2003
Ort: Dresden
57 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: SQL-Sanduhr bei Datenübermittlung bleibt bestehen

  Alt 7. Apr 2005, 17:57
habe zuhause keine MySQL-Treiber für ODBC,

ich muss den erst downloaden

danke für deine Antwort (vorerst)

Aber wenn man i [b]<[/b] Memo.lines [u]-1[/u] ,dann ist man ja beim Vorletzten, oder?
~~ an alln ekn & endn sparn! ~~
  Mit Zitat antworten Zitat
Benutzerbild von Airblader
Airblader

Registriert seit: 29. Okt 2004
Ort: Geislingen an der Steige
742 Beiträge
 
#4

Re: SQL-Sanduhr bei Datenübermittlung bleibt bestehen

  Alt 7. Apr 2005, 18:25
[OT]
Zitat:
in eine PHPMyAdmin-Sql-DB über nimmt.
Es gibt keine PHPMyAdmin-SQL-DB
PHPMyAdmin ist nur eine Oberfläche zur Administration
[/OT]
Ingo Bürk
Es nimmt der Augenblick, was Jahre geben.

Johann Wolfgang von Goethe
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: SQL-Sanduhr bei Datenübermittlung bleibt bestehen

  Alt 8. Apr 2005, 07:07
Zitat von Moin:
Aber wenn man i [b]<[/b] Memo.lines [u]-1[/u] ,dann ist man ja beim Vorletzten, oder?
das stimmt schon, aber man fängt auch beim null-ten element an.
also: 0 bis (10 -1) sind 10 durchläufe.

gruessle
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Albi

Registriert seit: 4. Mai 2003
Ort: Berlin
458 Beiträge
 
Delphi 7 Professional
 
#6

Re: SQL-Sanduhr bei Datenübermittlung bleibt bestehen

  Alt 8. Apr 2005, 07:32
Hallo,

etwas OT - aber Count funktioniert so, das eine Datenmenge so lange durchlaufen wird bis sie alle ist und das wird daran erkannt, dass eben kein Datenmenge mehr da ist.

Daher ist der Wert Count immer um eines Größer als die eigentliche Datenmenge.

Zitat von RavenIV:
das stimmt schon, aber man fängt auch beim null-ten element an.
also: 0 bis (10 -1) sind 10 durchläufe.
Sorry aber das ist Quatsch, wenn es heißt for i:= 1 o. 5 do Daten.Count-1 must du auch Count -1 nehmen.
Gruß

Albi
  Mit Zitat antworten Zitat
Moin

Registriert seit: 16. Dez 2003
Ort: Dresden
57 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: SQL-Sanduhr bei Datenübermittlung bleibt bestehen

  Alt 14. Apr 2005, 19:57
Danke für eure Hilfe!

Es Geht jetzt endlich!
~~ an alln ekn & endn sparn! ~~
  Mit Zitat antworten Zitat
Antwort Antwort


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 05:41 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