|
Registriert seit: 8. Dez 2002 55 Beiträge |
#1
Hi Leute und zwar habe ich ein klines Problem, immer wenn ich meine SQL Datenbank auslesen will kommt folgender fehler.
IM Project1.exe ist eine Exception der Klasse EStackOverflow aufgtreten. Meldung: 'Stack-Überlauf' Prozess wurde angehalten. Mit einzellne Anweisung oder Start fortsetzen. Ich habe folgenden Quelltext.
Delphi-Quellcode:
Könnt ihr mir vielleicht sagen was ich falsch gemacht habe?Ich kann halt keinen fehler erkennen, zumal ich vorher den selben quelltext hatte unnd da ging es danach habe ich meinen rechner formatiert und da war dann das problem siehe unten und dann hab ich das formular neu gemacht und seit dem geht es nicht mehr. wenn ich die alte exe vom vor dem formatieren aufrufe funktioniert es die neue geht nicht. Ich poste noch mal schnell mit dem quellteyt den ich zuerst hatte ist eigentlich hargenau der selbe.
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, ZQuery, ZMySqlQuery, ZTransact, ZMySqlTr, ZConnect, ZMySqlCon, StdCtrls, Grids; type TForm1 = class(TForm) dbmain: TZMySqlDatabase; trmain: TZMySqlTransact; qrmain: TZMySqlQuery; ds: TDataSource; host: TEdit; user: TEdit; passwort: TEdit; database: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Edit5: TEdit; Label5: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; Label9: TLabel; anlegen: TButton; eintragen: TButton; anzeigen: TButton; StringGrid1: TStringGrid; procedure anlegenClick(Sender: TObject); procedure eintragenClick(Sender: TObject); procedure anzeigenClick(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.anlegenClick(Sender: TObject); begin dbMain.Host:=host.Text; //Server dbMain.Login:=user.Text; //Benutzername dbMain.Password:=passwort.Text; //Passwort dbMain.Database:=database.Text; //Name der Datenbank dbMain.Connected:=True; //Verbindung herstellen try qrMain.SQL.Text:='CREATE TABLE `adressbuch` ('+ '`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,'+ '`vorname` TEXT NOT NULL,'+ '`name` TEXT NOT NULL,'+ '`adresse` TEXT NOT NULL,'+ '`wohnort` TEXT NOT NULL,'+ '`plz` int NOT NULL'+ ');'; qrMain.ExecSql; finally dbMain.Connected:=False; end; end; procedure TForm1.eintragenClick(Sender: TObject); begin dbMain.Host:=host.Text; //Server dbMain.Login:=user.Text; //Benutzername dbMain.Password:=passwort.Text; //Passwort dbMain.Database:=database.Text; //Name der Datenbank dbMain.Connected:=True; //Verbindung herstellen try qrMain.SQL.Text:='INSERT INTO `adressbuch` '+ '(`id`, `vorname`, `name`, `adresse`, `wohnort`, `plz`)'+ ' VALUES '+ '('''', '''+edit1.Text+''', '''+edit2.Text+ ''', '''+edit3.Text+''', '''+edit4.Text+ ''', '''+edit5.Text+''');'; qrMain.ExecSql; //SQL-Statement ausführen finally dbMain.Connected:=False; end; end; procedure TForm1.anzeigenClick(Sender: TObject); var i, j,k :integer; begin dbMain.Host:=host.Text; //Server dbMain.Login:=user.Text; //Benutzername dbMain.Password:=passwort.Text; //Passwort dbMain.Database:=database.Text; //Name der Datenbank dbMain.Connected:=True; //Verbindung herstellen qrmain.SQL.Text:='Select * from `adressbuch` order by name;'; qrmain.Open; stringgrid1.rowcount:=0; stringgrid1.Cells[0,0] := 'id'; stringgrid1.Cells[1,0] := 'Vorname:'; stringgrid1.Cells[2,0] := 'Name:'; stringgrid1.Cells[3,0] := 'Adresse:'; stringgrid1.Cells[4,0] := 'Wohnort:'; stringgrid1.Cells[5,0] := 'PLZ'; k := qrmain.RecordCount; showmessage(inttostr(k)); for i := 1 to k do begin stringgrid1.RowCount := stringgrid1.RowCount + 1; stringgrid1.Cells[1,i] := qrMain.FieldByName('vorname').AsString; stringgrid1.Cells[2,i] := qrMain.FieldByName('name').AsString; stringgrid1.Cells[0,i] := qrMain.FieldByName('id').AsString; stringgrid1.Cells[3,i] := qrMain.FieldByName('adresse').AsString; stringgrid1.Cells[4,i] := qrMain.FieldByName('wohnort').AsString; stringgrid1.Cells[5,i] := qrMain.FieldByName('plz').AsString; qrmain.Next; end; qrmain.Close; end; end.
Delphi-Quellcode:
Und 2. habe ich immer wieder das Problem, dass mir beim öffnen meines Programmes Delphi plötzlich sagt, dass ich das Formular nicht mehr öffnen kann. Und somit darf ich das ganze Formular neu machen, Quelltext bleibt erhalten. Ich arbeite mit den Zeos komponenten.
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DBTables, DB, StdCtrls, Grids, DBGrids,ComCtrls, ExtCtrls, DBCtrls, ZConnect, ZMySqlCon, ZQuery, ZMySqlQuery, ZTransact, ZMySqlTr; type TForm1 = class(TForm) Btabanlegen: TButton; Ehost: TEdit; Euser: TEdit; Epw: TEdit; edb: TEdit; Host: TLabel; User: TLabel; Label3: TLabel; Database: TLabel; dsmain: TDataSource; beintragen: TButton; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Edit5: TEdit; Label1: TLabel; Label2: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Banzeigen: TButton; StringGrid1: TStringGrid; trmain: TZMySqlTransact; qrmain: TZMySqlQuery; dbmain: TZMySqlDatabase; procedure BtabanlegenClick(Sender: TObject); procedure beintragenClick(Sender: TObject); procedure BanzeigenClick(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.BtabanlegenClick(Sender: TObject); begin dbMain.Host:=ehost.Text; //Server dbMain.Login:=euser.Text; //Benutzername dbMain.Password:=epw.Text; //Passwort dbMain.Database:=edb.Text; //Name der Datenbank dbMain.Connected:=True; //Verbindung herstellen try qrMain.SQL.Text:='CREATE TABLE `adressbuch` ('+ '`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,'+ '`vorname` TEXT NOT NULL,'+ '`name` TEXT NOT NULL,'+ '`adresse` TEXT NOT NULL,'+ '`wohnort` TEXT NOT NULL,'+ '`plz` INT NOT NULL'+ ');'; qrMain.ExecSql; finally dbMain.Connected:=False; end; end; procedure TForm1.beintragenClick(Sender: TObject); begin dbMain.Host:=ehost.Text; //Server dbMain.Login:=euser.Text; //Benutzername dbMain.Password:=epw.Text; //Passwort dbMain.Database:=edb.Text; //Name der Datenbank dbMain.Connected:=True; //Verbindung herstellen try qrMain.SQL.Text:='INSERT INTO `adressbuch` '+ '(`id`, `vorname`, `name`, `adresse`, `wohnort`, `plz`)'+ ' VALUES '+ '('''', '''+edit1.Text+''', '''+edit2.Text+ ''', '''+edit3.Text+''', '''+edit4.Text+ ''', '''+edit5.Text+''');'; qrMain.ExecSql; //SQL-Statement ausführen finally dbMain.Connected:=False; end; end; procedure TForm1.BanzeigenClick(Sender: TObject); var i, j,k :integer; begin dbMain.Host:=ehost.Text; //Server dbMain.Login:=euser.Text; //Benutzername dbMain.Password:=epw.Text; //Passwort dbMain.Database:=edb.Text; //Name der Datenbank dbMain.Connected:=True; //Verbindung herstellen qrmain.SQL.Text:='Select * from `adressbuch` order by name;'; qrmain.Open; stringgrid1.rowcount:=0; stringgrid1.Cells[0,0] := 'id'; stringgrid1.Cells[1,0] := 'Vorname:'; stringgrid1.Cells[2,0] := 'Name:'; stringgrid1.Cells[3,0] := 'Adresse:'; stringgrid1.Cells[4,0] := 'Wohnort:'; stringgrid1.Cells[5,0] := 'PLZ'; k := qrmain.RecordCount; //showmessage(inttostr(k)); for i := 1 to k do begin stringgrid1.RowCount := stringgrid1.RowCount + 1; stringgrid1.Cells[1,i] := qrMain.FieldByName('vorname').AsString; stringgrid1.Cells[2,i] := qrMain.FieldByName('name').AsString; stringgrid1.Cells[0,i] := qrMain.FieldByName('id').AsString; stringgrid1.Cells[3,i] := qrMain.FieldByName('adresse').AsString; stringgrid1.Cells[4,i] := qrMain.FieldByName('wohnort').AsString; stringgrid1.Cells[5,i] := qrMain.FieldByName('plz').AsString; qrmain.Next; end; qrmain.Close; end; end. Wäre dankbar für Hilfe grüße yosh |
![]() |
Ansicht |
![]() |
![]() |
![]() |
ForumregelnEs 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
|
|
Nützliche Links |
Heutige Beiträge |
Sitemap |
Suchen |
Code-Library |
Wer ist online |
Alle Foren als gelesen markieren |
Gehe zu... |
LinkBack |
![]() |
![]() |