Aktuelle Zeit: 20.05.2013 11:14

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 11 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: IMA bei strukturierter LinkedList
BeitragVerfasst: 15.05.2012 18:17 
Offline

Registriert: 15.05.2012 17:38
Hallo zusammen,

folgender Code bricht nicht reproduzierbar mit der Fehlermeldung "Ungültiger Speicherzugriff: Lesefehler an der Adresse xxx" ab.

Code:
Structure TABLE   
  Array column.s(0)   
EndStructure

Global NewList rs.TABLE()

Procedure ExSQL(sql.s, List ll.TABLE())
  ClearList(ll())
  If DatabaseQuery(0, sql)
    While NextDatabaseRow(0)
      AddElement(ll())
      ReDim rs()\column(DatabaseColumns(0)-1)
      For i=0 To DatabaseColumns(0)-1
        ll()\column(i) = GetDatabaseString(0, i)
      Next
    Wend
  Else
    If Len(Trim(DatabaseError())) > 0
      Debug DatabaseError()
    EndIf   
  EndIf
  ResetList(ll())
EndProcedure

If UseODBCDatabase()
  If OpenDatabase(0, DSN, USER, PW)
    ExSQL("SELECT * FROM some_db;", rs())
    ForEach rs()
      buffer$ = ""
      For i=0 To ArraySize(rs()\column())
        buffer$ + rs()\column(i) + Chr(124)
      Next
      Debug buffer$
    Next   
  EndIf
  CloseDatabase(0)
EndIf

End


Habe keinen Ansatz in welche Richtung ich debuggen soll. Wäre super, wenn jemand eine Idee hat.

MfG

_________________
PureBasic 4.60 | Windows 7 SP1 (x64)


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: IMA bei strukturierter LinkedList
BeitragVerfasst: 15.05.2012 18:50 
Offline
Benutzeravatar

Registriert: 03.06.2007 14:36
Wohnort: Unterfranken
Hallo bullit611,

Willkommen im Forum.

Bitte aber testbaren Code posten. Dein Code bringt schon beim compilieren einen Fehler ! (zumindest mit PB x86 4.60)

Code:
  If OpenDatabase(0, DSN, USER, PW)


Code:
---------------------------
PureBasic
---------------------------
Zeile 26: Falscher Parameter-Typ: ein String wird erwartet.
---------------------------
OK   
---------------------------


Grüße Nicknamefj

_________________
PS: Alle im Text enthaltenen Schreibfehler sind beabsichtigt und dienen der Belustigung aller

Bild


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: IMA bei strukturierter LinkedList
BeitragVerfasst: 15.05.2012 19:15 
Offline
StudiMod oder sowas in der Art
Benutzeravatar

Registriert: 29.08.2004 20:20
Wohnort: Homburg (Saar)
NicknameFJ hat geschrieben:
Hallo bullit611,

Willkommen im Forum.

Bitte aber testbaren Code posten. Dein Code bringt schon beim compilieren einen Fehler ! (zumindest mit PB x86 4.60)

Code:
  If OpenDatabase(0, DSN, USER, PW)

Grüße Nicknamefj

Das ist logisch. Er öffnet eine Datenbank, deren Nutzername, Passwort und IP er uns sicherlich nicht verraten wird. Ich glaube hier wird's schwer einen funktionierenden Testcode zu erstellen.

_________________
Bild

NEU! Elektronik, Bastelei, Verrücktes, Interessantes, Schlaues, alles in Text, Bild und Ton? Klick hier! NEU!
Linux Mint 14 x64, PureBasic 5.11 x64 (außerdem 4.41, 4.50, 4.61, 5.00, 5.10)

Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen – Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: IMA bei strukturierter LinkedList
BeitragVerfasst: 15.05.2012 19:21 
Offline
CodeCommander
Benutzeravatar

Registriert: 08.09.2004 00:57
Wohnort: Berlin
NicTheQuick hat geschrieben:
Ich glaube hier wird's schwer einen funktionierenden Testcode zu erstellen.

Denke ich mal nicht, weil es wahrscheinlich nichts mit der DB zu tun hat. Den Testcode auf SQLite umzustellen,
sollte kein so großes Problem sein. Außerdem wäre eine Aussage über die verwendete PB Version, Bitbreite und
evtl. OS sehr hilfreich.

Bei der bisherigen Form, wird Hilfe eher nicht möglich, bzw. in Hellsehen ausarten :mrgreen:

_________________
PureBasic 5.11 | Windows 7 SP1 (x64) | Linux Mint 14 (x64) | RealSource
Bild
Der CodeCommander, der seine Finger sowohl von Windows 8, wie auch dem Monitor lässt!


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: IMA bei strukturierter LinkedList
BeitragVerfasst: 15.05.2012 19:46 
Offline
-= Anfänger =-
Benutzeravatar

Registriert: 29.08.2004 03:07
bullit611 hat geschrieben:
Code:
Procedure ExSQL(sql.s, List ll.TABLE())
  ClearList(ll())
  If DatabaseQuery(0, sql)
    While NextDatabaseRow(0)
      AddElement(ll())
      ReDim rs()\column(DatabaseColumns(0)-1)
      For i=0 To DatabaseColumns(0)-1
        ll()\column(i) = GetDatabaseString(0, i)
      Next
    Wend
  Else
    If Len(Trim(DatabaseError())) > 0
      Debug DatabaseError()
    EndIf   
  EndIf
  ResetList(ll())
EndProcedure

Ändere doch mal
Code:
ReDim rs()\column(DatabaseColumns(0)-1)

zu
Code:
ReDim ll()\column(DatabaseColumns(0))

Also die Liste ll() statt rs() nehmen (obwohl es hier die gleiche Liste ist), und
das -1 weg lassen, denn wenn DatabaseColumns() mal 0 zurück gibt, würdest
Du das Array mit dem Wert -1 redimensionieren. '+1' wäre sicherer zum testen.

Mit Debugger solltest Du aber einen Fehler bekommen, 'Array: Out of Bounds Error' oder sowas.

_________________
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: IMA bei strukturierter LinkedList
BeitragVerfasst: 15.05.2012 20:05 
Offline
Benutzeravatar

Registriert: 08.09.2004 08:21
Wohnort: Porada Ninfu
Der Code funktioniert bei mir soweit ohne IMA

(habe eine SQLite Test-Datenbank verwendet (3 Spalten / 1000 Zeilen)).

* Welche Zeile Deines Codes wird den bei dem IMA farblich hervorgehoben?

* Verwendest Du im restlichen Teil Deines Programmes Threads?

Kann auch sein, dass Deine DB 'krumme' Daten beinhaltet.

Grüße ... Kiffi

_________________
"Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live." - Martin Golding

PureBasic FAQ
PureBasic Projekthosting


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: IMA bei strukturierter LinkedList
BeitragVerfasst: 15.05.2012 20:36 
Offline

Registriert: 15.05.2012 17:38
Vielen Dank für die schnellen Antworten.

@all: verwende Pure 4.60 auf Win7 64bit, mit jaPBe tritt der Fehler nicht auf, nur bei der Standard-IDE

@Danilo: habe ich bereits geändert, keinen Erfolg

Der IMA tritt nicht immer an der selben Codezeile auf. Die DB Daten sind i.O.
Ja ich verwende teilweise Threads. Die Prozedur ExSQL(sql.s, List ll.TABLE()) wird aus einem Thread heraus aufgerufen, die Verarbeitung der rs.TABLE() erfolgt im selben Thread.

Mfg.

_________________
PureBasic 4.60 | Windows 7 SP1 (x64)


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: IMA bei strukturierter LinkedList
BeitragVerfasst: 15.05.2012 20:43 
Offline
CodeCommander
Benutzeravatar

Registriert: 08.09.2004 00:57
Wohnort: Berlin
bullit611 hat geschrieben:
@all: verwende Pure 4.60 auf Win7 64bit, mit jaPBe tritt der Fehler nicht auf, nur bei der Standard-IDE

Dann Tippe ich mal auf eine UserLib und entweder Unicode oder Threadsafe!

Einfach mal in die Hilfe der UserLib schauen und das richtige SubSystem einstellen, weil das macht die Standard-IDE nicht
automatisch.

Auf jeden Fall mal die Einstellungen überprüfen, weil die werden nicht übernommen. Es ist auch nicht ratsam zwei
verschiedene Editoren zu verwenden

_________________
PureBasic 5.11 | Windows 7 SP1 (x64) | Linux Mint 14 (x64) | RealSource
Bild
Der CodeCommander, der seine Finger sowohl von Windows 8, wie auch dem Monitor lässt!


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: IMA bei strukturierter LinkedList
BeitragVerfasst: 15.05.2012 21:05 
Offline

Registriert: 15.05.2012 17:38
Danke für den Tip. Benutze auch keine zwei Editoren, habe aber mein Projekt von jaPBe auf Standard-IDE umgestellt, da ich SubVersion zur Versionskontrolle nutze. Und jaPBe schreibt ja immer am Dateiende die Config und SubVersion meldet sich dann natürlich, obwohl nur die Cursorposition verändert wurde.

_________________
PureBasic 4.60 | Windows 7 SP1 (x64)


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: IMA bei strukturierter LinkedList
BeitragVerfasst: 15.05.2012 23:28 
Offline

Registriert: 22.03.2005 00:29
Wohnort: LK Wolfenbüttel
Da du ja threads nutzt, rufen mehr als ein Thread diese Procedure auf oder nutzt mehr als ein Thread die selbe LinkedList? "Hauptcode / -Process" ist in dem Bezug natürlich auch als "Thread" anzusehen.
Vielleicht greifen das zwei Threads gleichzeitig auf Daten zu oder was eher sein kann, das ein Thread auf einen Bereich zugreifen will, der gar nicht mehr existiert.

_________________
1. AMD Athlon II X2 250P,4GB-RAM,WinXP
2. Notebook,500mhz,128MB-RAM,WINXP
3. WHS 2003
Inet: 6Mbit Down/386Kbit Up,Flat
PB4.60
Messenger: Trillian


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 11 Beiträge ]  Gehe zu Seite 1, 2  Nächste

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 1 Gast


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye