| |
Anzeigen |
|
|
Social Bookmark Script |
|
|
|
 |
Dataflex mit MS Access |
fago88
Jungspund

Dabei seit: 29.04.2008
Beiträge: 21
 |
|
Hallo zusammen,
ich hab folgende Aufgabenstellung:
Wir haben ein Programm einen so genanntes Dokumentenmanagment System, die Daten dazu sind in der interenen File basierten Dataflex Datenbank abgespeichert.
So weit so gut... jetzt zum kniffligem Teil
Personenbezogene Daten sind in einer gesichterten Access Datenbank hinterlegt, diese dürfen wir nicht importieren. Also muss ich aus dem laufenden Porgramm die Möglichkeit haben per Knopfdruck eine Person aus der Access Datenbank auszuwählen und dann Name Straße usw in unser Programm übernehmen zu können.
Ich habe leider keine Ahnung wie ich manuell eine Verbindung zu einer Access Datenbank herstelle.
Ich bitte um Hilfe. DANke
|
|
07.10.2010 15:37 |
|
|
Matthias
Super Moderator
   
Dabei seit: 09.07.2007
Beiträge: 233
Einsatzart von VDF: gewerblich Anwenderstatus: VDF-Entwickler Herkunft: Niedernhausen Betriebssystem: XP, Vista, Win7, 2008 Ser
 |
|
Man müsste eine ODBC-Verbindung herstellen, also eine DSN einrichten.
Über diese kann man dann mit dem ODBC Connectivity Kit vom DataFlex zugreifen.
Matthias
|
|
08.10.2010 08:54 |
|
|
Matthias
Super Moderator
   
Dabei seit: 09.07.2007
Beiträge: 233
Einsatzart von VDF: gewerblich Anwenderstatus: VDF-Entwickler Herkunft: Niedernhausen Betriebssystem: XP, Vista, Win7, 2008 Ser
 |
|
|
11.10.2010 19:38 |
|
|
Ditte
Foren As
   

Dabei seit: 23.07.2007
Beiträge: 77
Einsatzart von VDF: gewerblich Anwenderstatus: Programmierprofi Herkunft: Berlin Betriebssystem: XP,Win7,Win Serv2003,2008
 |
|
Ich stehe vor einen ähnlichen Problem.
Meine Daten sind aber nicht so geheim.
Ich soll aus einer Tanksäule (die Daten werden in einer MS Access Datei gespeichert) die aktuellen Daten auslesen und in einem VDF Programm weiter bearbeiten.
1. Möglichkeit
Export in Tankstellenmodul -> in csv Datei
Import in VDF Programm
2. Möglichkeit
Zugriff über ODBC auf MS Access Datei.
Zu 2.
Versuch der Lösung mit erfogreichem Scheitern
> Open Database Builder > Database > ODBC > ODBC Administrator
Click on the "Add" button
Enter "tankdat" in the "Data Source Name" window
Click "Ok"
> Open Database Builder > Database > ODBC > Connect to ODBC Database...
DataSource > tankdat
Login ID: taba (das ist der Anmeldename im Tanstellenmodul)
Password : (kein Passwort)
x show user data sources
>NEXT
Select Connection Option
x yes reconnect and regenerate definition ....
>NEXT
Table Selection
expand tables
there are:
KFZ
Tankdaten
Tanks
Zapfpunkte
Zeiterfassung
>mark Tankdaten (this values I like to get)
>NEXT
Now it will run Analyze Selections
Result:
Analysis of 1 database objects completed.
Cannot open 1 table on the backend
Cannot Proceed: There are no valid tables to process.
Hier komme ich nicht mehr weiter.
__________________ Dittmar
|
|
14.10.2010 12:45 |
|
|
fago88
Jungspund

Dabei seit: 29.04.2008
Beiträge: 21
Themenstarter
 |
|
@Ditte.... genau die selbe Situation hab ich auch
Problem ist nicht unbedingt die Geheimhaltung der Daten..sondern das diese Sich ständig akualisieren. Das wäre jedoch kein Problem wenn ich die Daten per Mausklick einen Teil der Accessdatenbank in eine Tempdatei importieren könnte!
@Matthias... hast du vllt einen Quellcode-Schnippsel oder ein Beispiel wie ich mich mit einer Access Datenbank manuell verbinde und Zugriff auf ein Feld einer Tabelle bekomme?
Ich stell mir das so vor
object oButton
Procedure OnClick
// Wo befindet sich die Datenbank
// einloggen (falls notwendig)
// Tabelle und Feld(er) auswählen
// Inhalt in einem Array oder einer Datenbank speichern
// Verbindung schließen
end_procdure
end_object
danke und lg fabian
|
|
15.10.2010 12:17 |
|
|
Ditte
Foren As
   

Dabei seit: 23.07.2007
Beiträge: 77
Einsatzart von VDF: gewerblich Anwenderstatus: Programmierprofi Herkunft: Berlin Betriebssystem: XP,Win7,Win Serv2003,2008
 |
|
Hallo Fabian,
eigentlich ist der von mir beschriebene Weg ok.
Ich habe jetzt mal MS Access installiert und eine Datenbank mit einer Tabelle angelegt.
Dann (die DB muss im Dfpath Deines Programms liegen).
> Open Database Builder > Database > ODBC > ODBC Administrator
Hinzufügen in Benutzerdatenquellen drücken
MS Access Treiber wählen
DataSource > "Name" (beliebiger Name)
Login ID:
(den Du in MS Access vergeben hast, oder beim Programmentwickler erfragen)
Password :
(welches Du in MS Access vergeben hast, oder beim Programmentwickler erfragen)
x show user data sources
Dann kannst Du die Datenbank mit
> Open Database Builder > Database > ODBC > Connect to ODBC Database...
die Datenbank in Dein filelist importieren.
__________________ Dittmar
|
|
15.10.2010 18:01 |
|
|
Matthias
Super Moderator
   
Dabei seit: 09.07.2007
Beiträge: 233
Einsatzart von VDF: gewerblich Anwenderstatus: VDF-Entwickler Herkunft: Niedernhausen Betriebssystem: XP, Vista, Win7, 2008 Ser
 |
|
Man kann die Datei trotzdem in die Filelist aufnehmen, man muss Sie ja, wenn sie nicht gebraucht wird, auch nicht versuchen zu öffen.
Alternativ kann man die das OPEN-Statement mit einem Ignore_Error kombinieren und den Fehler im Programm abfangen.
Matthias
|
|
19.10.2010 12:08 |
|
|
Ditte
Foren As
   

Dabei seit: 23.07.2007
Beiträge: 77
Einsatzart von VDF: gewerblich Anwenderstatus: Programmierprofi Herkunft: Berlin Betriebssystem: XP,Win7,Win Serv2003,2008
 |
|
Wichtiger Hinweis von Vincent,
"...One tip, if you plan to read from MS Access and do not need to write to it you should flag the database as read-only in your VDF application. If you do not do that every save will be quite slow (depending on the size of the MS Access database). So, after opening via the DSN, use the DF_FILE_MODE attribute. ..."
Übertragen,
wenn man nur lesend zugreifen möchte, soll man die Datenbank (MS Access) read only setzen, sonst wird jeder Sicherungsvorgang auf alle Datenbanken verlangsamt.
__________________ Dittmar
|
|
20.10.2010 13:22 |
|
|
Ditte
Foren As
   

Dabei seit: 23.07.2007
Beiträge: 77
Einsatzart von VDF: gewerblich Anwenderstatus: Programmierprofi Herkunft: Berlin Betriebssystem: XP,Win7,Win Serv2003,2008
 |
|
Ich habe versucht das Beispiel aus DataAccess zum Laufen zu bringen.
Specialized component
EmbSQLSample.src
Chapter3ODBC.vw
Ich komme auch schon recht weit. Der Database Builder öffnet die Datei, der DBExplore öffnet und ließt die Datenbank.
<<< meine Vorgehensweise und der Fehler beim Aufruf des Programms >>>
1. Erzeuge leere NS Accessdatenbank order.mdb
order.mdb
2. Erzeuge Order.dsn
order.dsn
[ODBC]
DRIVER=Microsoft Access-Treiber (*.mdb)
UID=admin
UserCommitSync=Yes
Threads=3
SafeTransactions=0
PageTimeout=5
MaxScanRows=8
MaxBufferSize=2048
FIL=MS Access
DriverId=25
DefaultDir=C:\VDF160\EXAMPLES160\SPECIALIZED COMPONENTS\Data
DBQ=C:\VDF160\EXAMPLES160\SPECIALIZED COMPONENTS\Data\order.mdb
Konvertiere order VDF Datenbank zu ODBC
Ich habe Zugriff auf Daten (odbc) via DBExplor.
Starte Beispiel von DataAccess Chapter 3 Sample (ODBC)
Ich bekomme den Fehler:
C:\VDF160\Examples160\Specialized Components\Programs\EmbSQLSample.exe
Anmeldung erfolglos. [Microsoft][ODBC Driver Manager] Der Datenquellenname wurde nicht gefunden, und es wurde kein Standardtreiber angegeben
Fehler: 12293
GET_SQLCONNECT (10662) - OSQLCONNECTION (314) - at address 70672
GET_SQLCONNECT (10662) - OSQLHANDLER (313) - at address 70787
MSG_MESSAGEINTERFACE (10722) - OCHAPTER3ODBC (30
- at address 72009
MSG_TESTMESSAGEINTERFACE (10723) - OCHAPTER3ODBC (30
- at address 72033
MSG_TESTMESSAGEINTERFACE (10723) - OMESSAGEINTERFACETEXT (311) - in native code
MSG_ONCLICK (4595) - OMESSAGEINTERFACETEXT (311) - at address 71983
MSG_COMMAND (64
- OMESSAGEINTERFACETEXT (311) - in native code
[start] - at address 73598
Wie gesagt kann ich über die Tools (DBExplor und DBBldr zugreifen
In MS Access habe ich zwei User mit allen Rechten ohne Passwort.
Administrator
Ditte
Beide habe ich als Login versucht??
Hat jemand einen Lösungsansatz. Habe dies schon am 18.10 an den Support geschickt, bisher aber noch keine Antwort erhalten.
__________________ Dittmar
|
|
20.10.2010 13:40 |
|
|
Matthias
Super Moderator
   
Dabei seit: 09.07.2007
Beiträge: 233
Einsatzart von VDF: gewerblich Anwenderstatus: VDF-Entwickler Herkunft: Niedernhausen Betriebssystem: XP, Vista, Win7, 2008 Ser
 |
|
Hallo Dittmar,
Hast Du vor über Embeddded SQL auf die Daten zuzugreifen? Dann verstehe ich aber nicht, was das mit dem dbExplorer zu tun hat. Der öffnet die Dateien auf normalem Wege.
Du kannst mit der Access-Tabellle genau wie mit "normalen" DataFlex-Dateien arbeiten.
Open Tabelle
Find Gt
etc. etc.
Matthias
|
|
21.10.2010 10:33 |
|
|
Ditte
Foren As
   

Dabei seit: 23.07.2007
Beiträge: 77
Einsatzart von VDF: gewerblich Anwenderstatus: Programmierprofi Herkunft: Berlin Betriebssystem: XP,Win7,Win Serv2003,2008
 |
|
Hallo Matthias,
ich wollte mir das Beispiel von DataAccess mal anschauen.
Und das erste Beispiel in EmbSQLSample.exe ist ein Zugriff auf ODBC.
Ich wollte nur sagen das der Treiber vom DBExplore über odbc zugreift, das ich das Beispiel aber nicht zum laufen bekomme.
Seltsam sind allerding die sql Abfragen in dem Beispiel:
Chapter3ODBC.vw
Ich denke ich habe es schon etwas verstanden, aber ...
Das Beispiel wandelt alle Datenbanken aus dem order Beispiel in Access Tables um (habe ich so gemacht). Dauert allerdings sehr lange.
__________________ Dittmar
|
|
21.10.2010 12:29 |
|
|
|
|
|
 |
|