AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi AV bei normalem Programmstart, bei Single Step nicht
Thema durchsuchen
Ansicht
Themen-Optionen

AV bei normalem Programmstart, bei Single Step nicht

Ein Thema von Christian Seehase · begonnen am 3. Sep 2006 · letzter Beitrag vom 4. Sep 2006
Antwort Antwort
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#1

AV bei normalem Programmstart, bei Single Step nicht

  Alt 3. Sep 2006, 15:53
Datenbank: MS SQL Server 2000 • Zugriff über: ADO
Moin Zusammen,

wie der Titel schon sagt erhalte ich beim Start meines Programmes, einzeln und aus der IDE heraus, eine AV.
Setze ich auf Application.Run einen Breakpoint, und gehe im Einzelschritt durch das Programm, so geschieht dies, in Abhängigkeit der Geschwindigkeit des F7/F8-drückens, an verschiedenen Stellen, oder aber auch gar nicht.

Das erste mal tritt der Fehler beim Aufruf von TADOQuery.Open auf.
Setze ich einen Breakpoint auf diese Zeile und führe sie, nach einer kurzen Wartezeit, mit F8 aus: Alles OK.
An einer andere Stelle konnte ich dann beobachten, dass der Value eines Feldes der TADOTable erst wegen Zugriffsverletzung nicht angezeigt werden konnte, dann, nach einer kleinen Wartezeit auf dieser Zeile, wurde der Wert korrekt ausglesen.

Das Programm enthält, auf einem TDataModule je eine TADOConnection, TADOTable, TADOQuery und TDataSource.
Zur Anzeige/Bearbeitung enthält das Programm einige TDBEdit-Komponenten und einen TDBNavigator.
Bis zu einer Änderung hat der Zugriff auch funktioniert.

Was ich geändert habe:
Im Enterprise-Manager habe ich die anzusprechende Tabelle umbenannt, und um ein paar Felder ergänzt.
Das Umbenennen liess sich problemlos durchführen, da es keine Abhängigkeiten gab (und gibt).

Dann habe ich im Programm den Tabellennamen angepasst, und die neuen Felder hinzugefügt (TADOTable gelöscht, hinzugefügt, Connection und TableName gesetzt, und die Felder über "Add all fields" hinzugefügt.)

Durch Verwendung der Debug-DCUs konnte ich feststellen, dass die AV beim Aufruf von GetRecord in TDataSet.Resync auftritt.

Nachdem ich die Fehlermeldung bestätigt habe, funktioniert alles wie vorher...

Hat jemand eine Idee, was das sein kann?

[EDIT]
Ich habe auch schon mal die DCUs und EXE gelöscht, und einen Build durchgeführt: Kein Erfolg.
[/EDIT]
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: AV bei normalem Programmstart, bei Single Step nicht

  Alt 3. Sep 2006, 17:01
Moin Zusammen,

so, Problem gelöst:
Es lag daran, dass ich noch die Felder der TADOTable im Programm, und angesprochen hatte.
Nach dem Tausch gegen die Felder der TADOQuery tritt das Problem nicht mehr auf.

(Auch wenn das, zugegebenermassen, noch nicht erklärt, warum der Fehler beim langsamen Durchsteppen nicht auftritt )
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: AV bei normalem Programmstart, bei Single Step nicht

  Alt 4. Sep 2006, 06:40
Ich würde dir empfehlen nur TADODataset zu verwenden. TADOQuery und TADOTable sind nur für wegen der einfacheren Portierung von BDE-Anwendungen vorhanden und haben noch hier und da Macken die TADODataset nicht besitzt.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: AV bei normalem Programmstart, bei Single Step nicht

  Alt 4. Sep 2006, 12:49
Moin Bernhard,

danke für den Tip

Da ich ja erst in den Anfängen stecke, kann ich das auch noch problemlos ändern.

Mir ging es halt darum SQL verwenden zu können, und hatte deshalb TADOQuery verwendet, und mir TADODataSet garnicht erst näher angesehen

Dann werde ich es mal mit TADODataSet (für SELECT) und TADOCommand (für den Rest) versuchen.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  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 19:30 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