| Autor | Beitrag | 
| Dhakiyah 
          Beiträge: 327
 Erhaltene Danke: 5
 
 Windows 7
 Delphi XE2
 
 | 
Verfasst: Mi 09.04.14 10:36 
 
Hallo!
 Hab da ein kleines Problem:
 		                       Delphi-Quelltext 
 									| 1:2:
 3:
 4:
 5:
 6:
 7:
 8:
 9:
 10:
 11:
 12:
 13:
 14:
 15:
 
 | var qry_heute: TADOQuery;begin
 qry_heute :=  TADOQuery.Create(nil);
 qry_heute.Connection := dm.ADOConnection1;
 with qry_heute do
 begin
 close;
 SQL.Clear;
 SQL.ADD ('select sysdate() jetzt from dual'); ;
 end;
 qry_heute.open;
 Result := StrToDateTime(qry_heute.FieldByName('jetzt').AsString);
 qry_heute.Close;
 qry_heute.Free;
 end;
 |  Bei qry_heute.open knallt er mir raus.
 Was mache ich falsch? 
 DB-Zugriff geht und DB Connected ist True.
 Habe das Problem nur in der Unit, wenn ich es in einem Formular mit der Komponente mache gehts._________________ Es ist soooo flauschig !!!
 | 
|  | 
| jaenicke 
          Beiträge: 19326
 Erhaltene Danke: 1749
 
 W11 x64 (Chrome, Edge)
 Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
 
 | 
Verfasst: Mi 09.04.14 13:26 
 
Was passiert denn? Schutzverletzung?
 Abgesehen davon, dass da ein with drin ist, was ohnehin schon nicht schön ist, hast du in der Zeile mit dem SQL.Add am Ende der Zeile ein doppeltes Semikolon. Da hatte ich schon einmal richtig seltsame Effekte in Kombination mit with in der Form, dass der Compiler zwar keinen Fehler gebracht hat, aber fürchterlich darüber gestolpert ist und falsche Ergebnisse geliefert hat.
 | 
|  | 
| WasWeißDennIch 
          Beiträge: 653
 Erhaltene Danke: 160
 
 
 
 
 | 
Verfasst: Mi 09.04.14 14:06 
 | 
|  | 
| Dhakiyah  
          Beiträge: 327
 Erhaltene Danke: 5
 
 Windows 7
 Delphi XE2
 
 | 
Verfasst: Do 10.04.14 06:50 
 
Moin!
Habe alle Varianten ausprobiert. Beim open knallt er raus mit der Meldung:
 
 Im Projekt ... ist eine Exception der Klasse .... mit der Meldung 'access violation at ...: write of address .... ' aufgetreten.
 
 Ist das mit dem with irgendwie nicht gut?
 Ich habe das so gelernt und mache das immer so... o.O
 _________________ Es ist soooo flauschig !!!
 | 
|  | 
| Nersgatt 
          Beiträge: 1581
 Erhaltene Danke: 279
 
 
 Delphi 10 Seattle Prof.
 
 | 
Verfasst: Do 10.04.14 06:57 
 
Sowohl dm als auch ADOConnection1 sind korrekt instanziert worden?
 Das With ist meiner Meinung nach einfach nur unübersichtlich. Daher benutze ich persönlich es grundsätzlich nicht.
 _________________ Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi) | 
|  | 
| WasWeißDennIch 
          Beiträge: 653
 Erhaltene Danke: 160
 
 
 
 
 | 
Verfasst: Do 10.04.14 07:00 
 
Was passiert denn, wenn Du in die "Open"-Zeile einen Haltepunkt setzt und mit F7 durchsteppst? Damit sollte sich zumindest ermitteln lassen, wo genau der Fehler auftritt. | 
|  | 
| jaenicke 
          Beiträge: 19326
 Erhaltene Danke: 1749
 
 W11 x64 (Chrome, Edge)
 Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
 
 | 
Verfasst: Do 10.04.14 07:59 
 
Wenn der Unterschied zwischen Komponente und selbst erzeugt ist, gibt es eigentlich nur zwei Unterschiede:
 Erstens der Owner - vielleicht solltest du es einmal mit etwas anderem als nil probieren, z.B. deinem Formular testweise.
 Zweitens ggf. gesetzte Eigenschaften im Objektinspektor, aber wenn du da keine gesetzt hast, sollte das nicht anders sein als manuell erzeugt.
 Wie sieht der Stacktrace an der Stelle aus (in Delphi, wenn du bei der Exception auf anhalten gehst)? Und welche Adressen stehen denn in der Fehlermeldung?
 	  |  Nersgatt hat folgendes geschrieben  : |  	  | Das With ist meiner Meinung nach einfach nur unübersichtlich. | 
 Und potentiell gefährlich.
 Das ist als ob du einem Soldaten sagst "Alles was ich dir sage mach in die Richtung A" und dann den Schießbefehl erteilst. Schade nur, wenn dieser für eine nicht drehbare Kanone gilt, die z.B. in deine Richtung zeigt. Der Soldat mag das noch merken, der Compiler nicht. | 
|  | 
| Dhakiyah  
          Beiträge: 327
 Erhaltene Danke: 5
 
 Windows 7
 Delphi XE2
 
 | 
Verfasst: Do 10.04.14 09:23 
 
Also, wir haben jetzt viel rumprobiert.
Er scheint ein Problem mit der Übergabe von () haben.
 Wenn ich z.B.
 select * from tabelleX
 mache, kommt kein Fehler, sobald ich aber z.B.
 select min(spaltex) from tabelleY
 oder eben das select sysdate() oder now() from dual
 mache knallt er raus mit einer Zugriffsverletzung.
 
 Kennt jemand das Problem?
 _________________ Es ist soooo flauschig !!!
 | 
|  | 
| jaenicke 
          Beiträge: 19326
 Erhaltene Danke: 1749
 
 W11 x64 (Chrome, Edge)
 Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
 
 | 
Verfasst: Do 10.04.14 10:52 
 
Was ist denn das für eine Datenbank dahinter?
Und welcher Provider wird in der Connection benutzt?
 | 
|  | 
| Muck 
          Beiträge: 98
 Erhaltene Danke: 8
 
 Win 8, Win 7, Vista, Win XP
 Delphi XE3, Delphi 2009, Delphi 2007, Delphi 5
 
 | 
Verfasst: Do 10.04.14 13:43 
 
Guten Morgen,
 ich hatte vor Jahren gleiches Problem mit einer ADOQuery auf einer aelteren Version. Zugriffsverletzungen traten nicht mehr auf nach
 		                       Delphi-Quelltext 
 									| 1:2:
 
 | LockType:=ltReadOnly;ParamCheck:=false;
 |  Vielleicht hilft es ja.
 bye
 Markus_________________ Computers are like air conditioners. They work fine until you start opening windows!
 | 
|  | 
| Dhakiyah  
          Beiträge: 327
 Erhaltene Danke: 5
 
 Windows 7
 Delphi XE2
 
 | 
Verfasst: Fr 11.04.14 05:28 
 
Provider=MSDASQL.1
 Datenbank=MySQL
 @Markus
 		                       Delphi-Quelltext 
 									| 1:2:
 
 | LockType:=ltReadOnly;ParamCheck:=false;
 |  Wo genau setze ich das ein?
EDIT: Es schein mit dem LockType und dem ParamCheck zu funktionieren.  _________________ Es ist soooo flauschig !!!
 | 
|  |