Deutsch
Units

dbHelper DSN OnTheFly usw.

 
dbHelper.pcu

Diese Unit ist für >= XProfan 10
Namensräume werden unterstützt (z.B: db.) und sollten verwendet werden!

Die Hauptaufgabe dieser Unit ist das erstellen und entfernen einer DSN
um OnTheFly per ODBC auf Datenbanken zugreifen zu können, ohne diese
durch den Benutzer einrichten zu lassen.

Desweiteren ist es möglich eine leere Access-Datenbank zu erstellen, um
diese weiter zu nutzen (DSN wird automatisch angelegt)

Beispiele und weitere Funktionen werden folgen!

Ein paar Standard-Driver Namen befinden sich in der dbHelper.ph

Funktionsbeschreibung: (nehme db. als Namensraum in der Beschreibung)
Eckige Klammern kennzeichnen optionale Parameter
Defaultwerte:
User$ =
Passwort$ =
Driver$ = Microsoft Access Driver (*.mdb)

DSN$ = db.AddDSN(DataBaseName$, [User$, [Passwort$, [Driver$]]])
Fügt einen DSN-Eintrag in den Benutzerdatenquellen ein
DSN$ ist im Fehlerfalle ein Leerstring, ansonsten kann dieser String für weitere
Befehle der XProfan ODBC-Schnittstelle verwendet werden!

Result% = db.RemoveDSN(DSN$, [Driver$])
Entfernt DSN-Eintrag aus den Benutzerdatenquellen
Result% ist 1 im erfolgsfalle, ansonsten 0

DSN$ = db.CreateMDB(DataBaseName$, [User$, [Passwort$]])
Erstellt eine leere Acces-Datenbank und fügt einen DSN-Eintrag hinzu

PS: Die DSN-Namen werden erstellt aus XPRF + Datenbankname ohne Pfad und Extension

Feedback, Bugmeldungen usw. erwünscht

Wenn der eine oder andere noch ein paar Beispiele erstellen würde, wäre sehr nett

26 kB
Kurzbeschreibung: Beta 0.6
Hochgeladen:09.10.2006
Ladeanzahl253
Herunterladen
 
30.09.2006  
 



Hab das Beispiel aus der Hilfe von S. Schnell mal ergänzt um Erstellung der Datenbank (Beispiel1.mdb), sowie Anzeige. DSN wird on the fly erstellt und gelöscht
KompilierenMarkierenSeparieren
### hinzugefügt
 $U dbHelper.pcu = db.
Declare DSN$
DSN$ = db.CreateMDB(Beispiel1.mdb)

If DSN$ =  : End : EndIf

    ### ende
    -Begin-----------------------------------------------------------------
    -VariablesDeclaration------------------------------------------------
    Declare hDb&
    Declare MemoFeld$
    -Main----------------------------------------------------------------
    ### geändert
    hDb& = @SQLInit(DSN=Microsoft Access-Datenbank)
    hDb& = @SQLInit(DSN= + DSN$)
    ### ende

    If hDb&

        -Tabelle erzeugen------------------------------------------------
        -
        -  AUTOINCREMENT = Autowert
        -  CHAR          = Text
        -  CURRENCY      = Waehrung
        -  DATE          = Datum/Uhrzeit
        -  FLOAT         = Double
        -  INT           = Long Integer
        -  MEMO          = Memory
        -  NUMBER        = Double
        -
        -----------------------------------------------------------------
        SQLExec CREATE TABLE test1 (Nummer AUTOINCREMENT,  +
        Name CHAR(50) PRIMARY KEY,  +
        Vorname CHAR(30),  +
        GebDatum DATE,  +
        Groesse INT,  +
        Gehalt CURRENCY,  +
        Faktor FLOAT,  +
        Bemerkung MEMO);, 0
        -Einen Datensatz anlegen-----------------------------------------
        MemoFeld$ = Dies ist ein Memo-Feld in dem eine Menge Text  +
        gespeichert werden kann und das fast keine  +
        Grenzen kennt.
        SQLExec INSERT INTO test1 (Name, Vorname, GebDatum,  +
        Groesse, Gehalt, Faktor,  +
        Bemerkung)  +
        VALUES (Schnell,  +
        Stefan,  +
        #6/16/1964#,  +
        189,  +
        3141.59,  +
        2.473,  +
        :MemoFeld$);, 0
        -Datensaetze anzeigen--------------------------------------------
        SQLExec SELECT * FROM test1;, 1
        ### hinzugefügt
        @ListBox$(TABLE, 2)
        ### ende
        -Tabelle loeschen------------------------------------------------
        SQLExec DROP TABLE test1;, 0
        SQLDone

    EndIf

    ### hinzugefügt
    db.RemoveDSN(DSN$)
    WaitKey
    ### ende
    -End-------------------------------------------------------------------
    End
 
30.09.2006  
 



Update auf Beta 0.2
Einige Syntaxänderungen, siehe erstes Posting
Beispiel hinzugefügt
 
01.10.2006  
 




Michael
Wodrich
Werds im Laufe des Tages mal testen.
Kann man sich da auch nichts zerschiessen, wenn man etwas entfernt?

Nicht das da nachher wichtige Einträge fehlen...
 
Programmieren, das spannendste Detektivspiel der Welt.
01.10.2006  
 



Michael Wodrich
Werds im Laufe des Tages mal testen.
Kann man sich da auch nichts zerschiessen, wenn man etwas entfernt?

Nicht das da nachher wichtige Einträge fehlen...


Entfernt nur DSN-Einträge die mit XPRF beginnen. Also sollten es nur vom Programm erstellte sein. Solltest Du jedoch eine Access DB Namens Test.mdb und eine Excel Tabelle Test.xls haben, so überschreiben die sich.

Man sollte also beim Programstart DSN erzeugen und am Ende endfernen, dürfte dann nichts passieren, solange man nicht mit gleichnamigen Datenbanken paralell arbeitet, mit dieser PCU!

DSN-Einträge sind im allgemeinen nicht wichtig, kann man jederzeit in der Systemsteuerung neu anlegen. (Nur Benutzerquellen werden benutzt, keine System-DNS usw.!)

Wäre schön, wenn Du mal testest
 
01.10.2006  
 



Update auf Beta 0.3

PCU größe optimiert (70%) und Geschwindigkeit gesteigert
 
01.10.2006  
 




Michael
Wodrich
Zugriff auf Access klappt, aber wie bekomme ich Zugriff auf eine MySQL-Datei?
 
Programmieren, das spannendste Detektivspiel der Welt.
01.10.2006  
 



[quote:817fe34677=Michael Wodrich]Zugriff auf Access klappt, aber wie bekomme ich Zugriff auf eine MySQL-Datei?[/quote:817fe34677]
MyODBC muß installiert sein, als Adresse dann z.B. den localhost angeben. (127.0.0.1) und Driver = MySQL ODBC 3.51 Driver
Habs aber noch nicht getestet, sollte aber gehen, wenn MySQL lokal läuft
 
01.10.2006  
 



Update Beta 0.5

Alle 3 Funktion haben jetzt einen zusätzlichen optionalen Parameter. Wenn dieser auf 1 gesetzt ist, wird der DSN-Eintrag in den Systemdatenquellen erstellt, bzw. gelöscht. Dort haben auch andere Nutzer des Systems zugriff auf die DB

PS: Wer ein paar nette Beispiele posten könnte, der erhält von mir per PM den Source, der aber nicht weitergegeben werden darf. Also haut rein
 
03.10.2006  
 




Michael
Wodrich
XAMPP hat den MyODBC wohl nicht gebraucht. Der Treiber ist bei mir garnicht installiert, hole ich gerade nach.

Weiß jemand wo bei XP Home die hosts. und lmhosts. genau hingehören damit sie korrekt ausgewertet werden? Ich habe auf meinem System Schwierigkeiten mit der localhost Angabe - die führt ständig ins Leere. Ich helfe mir mit 127.0.0.1.

Die Templates liegen unter WindowsSystem32Driveretc
hosts.sam und lmhosts.sam.

Schöne Grüße
Michael Wodrich
 
Programmieren, das spannendste Detektivspiel der Welt.
04.10.2006  
 



Nach System32/Drivers/etc
Nur umbenennen, also extension weg

MySQL geht auch ohne ODBC, indem man die DLL libmysql.dll direkt verwendet. Aber für ODBC ist MyODBC erforderlich!
 
04.10.2006  
 




Michael
Wodrich
Ich schaff es einfach nicht. Access-Dateien kein Problem aber MySql will nicht. Oder habe ich mit *.myd die falsche Datei am Wickel.

Da sind *.myd, *.myi, *.frm zur Auswahl.
d=datenbank, i=index ?!!

Erstellt habe ich die Datenbank wie immer: mit phpMyAdmin - damit arbeite ich eigentlich nur. Aber ein Programmzugriff via XProfan wäre natürlich gut...

Schöne Grüße
Michael Wodrich
 
Programmieren, das spannendste Detektivspiel der Welt.
04.10.2006  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

21.504 Betrachtungen

Unbenanntvor 0 min.
Erhard Wirth14.06.2024
H.Brill20.04.2023
Manfred Barei21.10.2020
Christof Neuß30.10.2016
Mehr...

Themeninformationen

Dieses Thema hat 3 Teilnehmer:

unbekannt (11x)
Michael Wodrich (4x)
iF (3x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie