Seite 2 von 5

Verfasst: 18.09.2008 12:14
von Bisonte
ZeHa hat geschrieben: ... (weil der Visual Designer unter PB leider so seine Tücken hat)...
Aber selbst dafür gibt es Alternativen.

Zum Beispiel PureFORM von Gnozal als Freeware oder PureVisionXP als kostenpflichtige Variante.

Verfasst: 18.09.2008 17:38
von Palandt
Ich kanns nicht oft genug wiederholen: In so kurzer Zeit so viele Antworten, das gibts wahrscheinlich sonst nur in Foren, in denen ein weibliches Model nach einer - wie auch immer aussehenden - männlichen Begleitung für den Besuch eines gemeinsames Schlafabteils im Orient-Express sucht :) Allein aufgrund eurer Bereitschaft, auf Fragen schnell und informativ zu antworten, sollte ich schon PB verwenden...

So, und nun aber genug Schleim verschossen, kommen wir zur Sache, wie es der Richter sagen würde:

@ Volker, Kiffi, Rings : Genau die Infos hab ich gesucht, danke! Und Volker, was das neu programmieren angeht, das war mir nach Runterladen der Demoversion klar (darum auch "Konvertierung" in Anführungszeichen) und ich denke, es ist ne gute Möglichkeit, das Programm zu erlernen. Denn auf demselben Weg habe ich mir auch VB6 beigebracht. Immer nur die Informationen nachgelesen, die ich zur Bewältigung des gerade anstehenden Problems benötigte, statt zeitraubend ganze Wälzer durchzublättern, von dessen Inhalt, ich - wie bereits eingangs erwähnt - ohnehin nur einen Bruchteil gespeichert hätte. Und nach einiger Zeit haben sich selbst bei mir die Dinge so verfestigt, dass ich nur noch hin und wieder zum Buch greifen musste. Was meiner Faulheit bei PB in diesem Punkt sehr gelegen kommt, ist die Möglichkeit Bruchteile des immer wieder verwendeten Codes als Code-Baustein abzuspeichern, das gibt es meines Erachtens nach bei VB6 nicht, jedenfalls hab ich es noch nicht entdeckt. Hinzu kommt, dass ich vermutlich mit PB eine graphisch ansprechenderes User-Interface gestalten kann, da zwar auch in VB6 über Image- oder Picture-Felder die Einbindung von Hintergrafiken möglich war, ich hier aber vermutlich etwas leichter, etwa über Sprites, eigene Buttons gestalten kann. Also eine Mischung aus VB6 light + Flash MX.

Was den Zeitfaktor angeht, den ZeHA erwähnte: Ich rechne ohnehin damit, dass das Prog erst nach meinem Examen, also frühestens in einem Jahr, umprogrammiert sein wird.
@ZeHA: Du hast Recht, der Virtual Designer ist - auf den ersten Blick zumindest - meilenweit von der Komfortabilität von VB6 entfernt, aber der wird sicherlich noch weiterentwickelt und zudem sprach Bisonte ja von einer möglichen Alternative, die ich mir aber erst zu Gemüt führen werde, wenn es soweit ist, wenn ich also dabei bin das User - Interface zu gestalten. Und das folgt bei mir erst, nachdem das Grundgerüst des Progs schon steht.

Nun hab ich abschließend noch 3 Fragen:
1. Was ist SQLite und kann ich Accessdatenbanken ohne Datenverlust in dieses Datenbankformat, sofern es denn eines ist, konvertieren? Und hier meine ich tatsächlich Konvertieren, denn ca. 20.000 Datensätze neu einzugeben, das käme einer Bibelübersetzung in Assembler gleich.

2. Auf den ersten Blick ist PB eine rein prozeduale Sprache, da ich mit Sicherheit keinen Spahetti-Code mit Gosub und Goto fabrizieren will, stellt sich die Frage, ob es sowas Ähnliches gibt, wie "Module" oder "Class Module", wobei es mir nicht auf Teufel komm raus nicht auf OOP ankommt, sondern nur auf die Möglichkeit, ständig wiederkehrende Funktionen / Prozeduren auszulagern?

3. Lohnt es sich die 78 oder 79 Euro Version aus dem Handel, mit der einjährigen Update-Beschränkung? Ich frage das deshalb, weil ich gelesen hab, das in diesem Fall ein Handbuch mitgeliefert wird und ich es immer lieber hab statt ständig zwischen verschiedenen Fenstern zu switchen (Programm / Hilfe). Wenn aber das Handbuch nichts mehr ist, als nur die Hilfedatei in Papier gegossen, dann spar ich mir den Zirkus und lad mir die Version runter, die mich zum zeitlich unbegrenzten Update berechtigt.

Danke im Voraus.

Verfasst: 18.09.2008 17:46
von ZeHa
Bloß nicht die Version aus dem Handel! Damit "handelst" Du Dir nur Ärger ein... gibt dazu einige Threads hier, es wird grundsätzlich dazu geraten, die Version bei André (purearea.net) oder auf der englischen PureBasic-Seite zu bestellen. Aber nicht auf der deutschen! Und nicht bei Pearl und nicht bei Amazon und nicht im Handel...

Verfasst: 18.09.2008 17:57
von Palandt
Zeha, wär nett, wenn du es begründen könntest. Nur weil der Update-Zugang beschränkt ist? Wenn dies dadurch kompensiert würde, dass ein geniales Handbuch mitgeliefert würde - da es ja relativ wenig bis gar keine deutschsprachige Literatur zu dem Thema gibt - das wär's mir dann schonmal wert, da es viel Zeit ersparen würde. Ok, ich bin auch im Englischen ganz passabel bewandert (im Hinblick auf englischsprachiger Literatur zu dem Thema), aber es strengt doch mehr an und kostet mehr Zeit, für die schulenglischfernen Fachbegriffe dauernd nach Übersetzungen zu fischen.

Verfasst: 18.09.2008 18:17
von Thalius
1.
SQLite ist ein datenbankformat das mit der Komfortablen SQL Syntax bearbeitet werden kann. Mehr infos hier: http://de.wikipedia.org/wiki/Sqlite
Access Daten -> SQLite zu wandeln ist mit den PB Hausmitteln lediglich eine Frage von ein wenig Fleissarbeit einen Konverter zu bauen ( Je nach Komplexität der Datenbank ). Der Vorteil von SQLite währe einmal Speed und Kompaktheit ausserdem können diese Datenbanken auch komplett im Memory ( zb. zur schnellen Verarbeitung oder verschiebung von Datensetzen ) abgelegt werden (...oder auch Teile davon ausgelagert ;))
Natürlich kannst du das ganze falls nötig als CSV, XML, Access was auch immer entweder per ODBC oder manuell wieder exportieren.

2.
PB ist Prozedural, jedoch vorallem wenn du im Englischen Board suchst findest du ein paar OOP Ansätze und Pre-Prozessoren. Geschmackssache. Generell werden Prozedurale Programme kompakter und effizienter - aber schlussendlich kommts eh darauf an was und wie du deinen code schreibst ;)
Wiederverwendbarkeit von Funktionen ist kein problem - wenn du dir eine kleine Ordnung machst. Du kannst quasi alles in Includefiles auslagern und dir somit deine eigenen Source-Bibliotheken anlegen. Eine Projektverwaltung zwingt dir die PB IDE nicht auf -( das ist dir überlassen :) ). Persönlich benutze ich auch ganz gerne den jaPBe (Alternativer Editor in PB geschrieben - findest du hier im Board) - welcher basis Ressourcen und Projektfunktionen besitzt.

3.
Ja nicht die Handelsversion. Lieber die Onlineversion und dann geh zu nem Drucker und lass dir das PDF als handbook für 20E ausdrucken - viel sauberer und vorallem aktueller. Die Handelsversion ist durch die Upgradebeschränkung auch ein Frust da dadurch all die netten features der Updates (die kommen immer Montags ;)) nicht zur Verfügung stehen.

Cheers,
Thalius

Verfasst: 18.09.2008 18:54
von Palandt
Dank dir Thalius, für die Infos.

1. SQLite: Wenn ich da bei dir lese, dass es "mit den PB Hausmitteln lediglich eine Frage von ein wenig Fleissarbeit" sei, einen Konverter zu basteln, da schreck ich doch eher dafür zurück, da ich ohnehin schon viel Freizeit investieren muss bzw. möchte, um das Prog an sich umzuschreiben. Und hin und wieder muss ich auch mal der studentischen Standardbeschäftigung Raum gewähren: Bier mit den Kumpels trinken....:)

2. Super, das reicht schon, wenn ich vielverwendete Prozeduren, sei es bspw. durch den von dir erwähnten "Includefile"-Befehl auslagern kann, dann ist das völlig ausreichend.

3. Also scheint das Handbuch zumindest keine Abschrift der Hilfedatei darzustellen. Es stehen sich also 2 Alternativen gegenüber: 79 Euro Handelsversion mit Handbuch + nur ein Jahr Updatemöglichkeit vs. 79 Euro Downloadversion + 20 Euro für das Handbuch, dafür unbegrenzte Updatemöglichkeit. Ok, ich muss ich eh erst bis Anfang nächsten Monats warten, bis ich die Knatze hab, solange tüftel ich noch an der Demoversion rum, aber danach werd ich wohl auch eher zu Variante 2 tendieren.

Verfasst: 18.09.2008 20:10
von Thalius
Wegend em Konverter hört sich das ganze komplizierter an als es eigentlich ist ;)
Mit ein wenig Brainaufwand lässt sich das Table evtl. in einem 20 Zeiler via ODBC von access nach SQLite wandeln.
Sinn machen würde das ganze Haupsächlich zur internen Verarbeitung ( echt Komfortabel ! ) und zum ablegen auf Festspeicher. Wenn dein Programm wiederum ein Access exportieren soll ( geht natürlich auch umgekehrt mit den ODBC Modulen ) musst das ganze dann natürlich nochmals im Rückwärtsgang angehen - was natürlich ein wenig mehr Aufwand gäbe. Aber obs dir durch schnellere und direktere Handhabung im Endeffekt Zeit spart kann ich nicht sagen ohne mehr über dein Programm zu wissen.

Cheers,
Thalius

Verfasst: 18.09.2008 20:19
von ZeHa
Palandt hat geschrieben:Zeha, wär nett, wenn du es begründen könntest.
Wie ich sagte, es gibt da bereits 'nen Haufen Threads darüber. Und das mit den Updates ist schon Grund genug... 20 EUR sind nicht viel Geld, die sind es definitiv wert. Mittlerweile gibt's im Handel ja glaub 'ne 4.00-Version, aber 'ne Zeitlang war's halt so, daß viele noch mit der 3.30-Version aus dem Handel rumgegurkt sind (weil die halt noch sehr lange verkauft worden ist), obwohl schon längst 4.00 draußen war.

Wenn Du Dir nachträglich die Update-Berechtigung kaufen willst, kostet es glaub eh insgesamt mehr.


EDIT: Und wie gesagt, kauf Dir die Version NICHT auf der deutschen Seite, denn die Leute dort sind etwas unzuverlässig. Bei mir hat es 3 Wochen gedauert (statt der versprochenen 2-3 Tage) und es gibt viele, die ähnliches berichten. Also wie bereits erwähnt, kauf Dir die Vollversion bei André oder auf der englischen Page.

Verfasst: 18.09.2008 21:36
von Kiffi
@Palandt: Wenn Du möchtest, dann kann ich Dir die Access-Datenbank in
SQLite konvertieren. Das wäre für mich nicht allzuviel Aufwand.

Wenn Interesse besteht, dann sag kurz Bescheid.

// Edit:

http://www.sqlite.org/cvstrac/wiki?p=ConverterTools

dort findest Du ganz unten auf der Seite (unter Attachments) ein VBS, das
den Konvertierungsjob vielleicht übernehmen könnte. (ungetestet)

Grüße ... Kiffi

Verfasst: 23.09.2008 16:55
von Palandt
Dank dir Kiffi für den Tipp. Ich hab mich entschlossen, von Access auf SQLite umzusteigen. Habe auch deinen Link genutzt um einen in VBS - geschriebenen Konverter herunterzuladen, der mir eine Testdatenbank (meine Jura-Datenbank enthält etwa 20.000 Datensätze) problemlos von einst Jus.mdb in Jus.sql umwandelte. Ich kann mir das Teil sogar im Windows-Editor anschauen.

...Das war der angenehme Teil. Kommen wir zum weniger tollen Teil.

Ich habe mir darauf hin ein Testprogramm in PB geschrieben, mittels dessen ich die Jus.sql auch problemlos öffnen kann, was allerdings nicht geht, ist der SQL-Befehl "SELECT * FROM Tabellenname". Da erscheint folgende Fehlermeldung: Kann Abfrage nicht durchführen: file is encrypted or not a database. Doch wenn es not a database wär, then könnts man auch nicht öffnen, or not? :)

Hier mal mein Code:

Code: Alles auswählen

; [A]	Eroeffnung einer Datenbank
; 		PB-Version: 4.20 (22.09.08)

DisableDebugger ;Debugger ausstellen, für unproblematische Stellen
		
; [B]   Konstanten

Enumeration
	#Database_0
	#File_0
EndEnumeration

; [C]   Strukturen
Structure DB
	sFile.S
	sUser.S
	sPass.S
EndStructure 

; [D]   Variablen

; I.   Globale Variablen

Global QM_DB.DB 

With QM_DB
  \sFile = "D:\Tools\SQLite\Konverter\VB\Jus.sql"
  \sUser = ""
  \sPass = ""
EndWith

; II.   Andere Variablen

; [E]   Prozeduren

Procedure OpenDB(id.l, file.s, user.s, pass.s)
  If OpenDatabase(id, file, user, pass, #PB_Database_SQLite)
    Debug "Datenbank geöffnet"
  Else
    Debug "Datenbank konnte nicht geöffnet werden!"
  EndIf
EndProcedure


Procedure CloseDB(id.l)

  CloseDatabase(id)
EndProcedure 

EnableDebugger ;Debugger wieder einschalten

Procedure View(id.l, table.s)
sSQL.s = "SELECT * FROM " + table


  If DatabaseQuery(id, sSQL)
    Debug ""
    Debug "----------------------------------------"
    While NextDatabaseRow(id)
      For z0.l = 0 To DatabaseColumns(id) - 1
        Debug DatabaseColumnName(id, z0) + " : " + GetDatabaseString(id, z0)
      Next z0
      Debug "----------------------------------------"
    Wend
    Debug ""
    
    If z0 > 0
      MessageRequester("Hinweis", "Datenbankabfrage war erfolgreich.")
    Else
      MessageRequester("Fehler 2", "Kann die folgende Abfrage nicht ausführen: "+DatabaseError())
    EndIf
  
  Else
    MessageRequester("Fehler 1", "Kann die folgende Abfrage nicht ausführen: "+DatabaseError())
  EndIf
EndProcedure



; [F]   *** MAIN ***

UseSQLiteDatabase() 

OpenDB(#Database_0, QM_DB\sFile, QM_DB\sUser, QM_DB\sPass) 

View (#Database_0, "Main")
Die Fehlermeldung, die ich oben genannt habe, erscheint unter "Fehler 1".

Vielen Dank im Voraus

PS: Vorschläge in die Richtung gehend, dass mir einer die Konvertierung abnimmt, sind zwar echt nett gemeint, lehne ich aber ab, da ich wie gesagt, alles alleine machen werde und vor allen Dingen auch ohne fremde Hilfe kapieren will.