ListView

Started by SpEEDY, May 06, 2010, 06:05:47 AM

Previous topic - Next topic

SpEEDY

Guten Tag Forum,
ich hätte mal einen Frage zum ListView.
Habe mich gerade durch die Hilfe von OpenDCL gearbeitet und bin auf folgendes gestoßen.

Auszug aus OpenDCL Hilfe zum Thema ListView_SetItemData
ââ,¬Å¾Diese Methode weist dem angegebenen Eintrag nutzerspezifische Daten zu (z.B. den eindeutigen Schlüssel eines Datensatzes aus einer Datenbanktabelle).ââ,¬Å"

Da habe ich mich gefragt. OpenDCL kann einen Verbindung mit einer Datenbank aufnehmen und das auch anzeigen.

Wenn ja hätte ich mal ein paar Fragen.
Um welche Form von Datenbank handelt es sich. Eine MDB?
Wie kann man sich mit der Datenbank verbinden?
Lässt sich die Datenbank ändern?

Wahrscheinlich ist es nicht möglich.
Cool  8) wer es auf alle Fall.

Danke schon mal für die Antworten.

Mit freundlichen Grüßen
SpEEDY
Es ist unmöglich etwas Idiotensicher zu machen, weil Idioten so genial sind!

Fred Tomke

Hallo, SpEEDY,

Nein, OpenDCL kann selbst nicht auf Datenbanken zugreifen. Du kannst allenfalls Inhalte aus Datenbanken in OpenDCL-Dialogen visualisieren, eine Eingabemaske zum Verändern vorhalten und die Änderungen aus diesen Dialogen auslesen und selbst in die Datenbank zurückschreiben. Das Stichwort sei in diesem Falle AdoDb.Connection und Fleming Group. Ein Anwendungsbeispiel findest Du hier: http://acad.fleming-group.com/Download/ADOLisp/ADOLisp.html

Ich nutze SetItemData bei Trees, Grids und ListViews zur Adressierung der Einträge in diesen Steuerelementen in den Datensätzen verschiedener Datenquellen (MDB, MySQL, ...), wenn der Schlüssel eine Ganzahl (Integer) ist. Für den Fall, dass der eindeutige Schlüssel eines Datensatzes ein Integer-Wert ist, kann man ihn mit Hilfe von ListView_SetItemData der ListView-Zeile zuweisen, dass es selbst nach dem Sortieren mit Hilfe der OpenDCL-eigenen Methoden gelingt, vom markierten ListView-Eintrag die ID zu bekommen und den antsprechenden Datensatzeintrag zu adressieren, ohne die ID in einer zusätzlichen Spalte oder globalen Variable vorhalten zu müssen.

Der Hinweis auf die Datenbank war eben (siehe "z.B." in Deinem Zitat) nur ein Anwendungsbeispiel von vielen.  ;)

Ich wollte schon länger ein Beispiel zum Thema OpenDCL und Datenbanken erstellen, habe es jedoch leider aus zeitlichen Gründen bisher nicht geschafft.

VG, Fred
Fred Tomke
Dipl.-Ing. (FH) Landespflege

[ landscaper - landscape developer - digital landscape and urban design]

SpEEDY

Hallo Fred,
erst mal Danke für das Programm.
Ich bin begeistert.

Kämpfe mich ein bisschen mit dem Ding herum.
Ich möchte eine Verbindung mit deiner anderen Datenbank herstellen.
Habe den Pfad in der Expample Datei geändert und die SQL-Angepasst.

Leider bekomme ich den Fehler das ich keine ââ,¬Å¾Leseberechtigungââ,¬Å" habe.
Woran könnte das liegen?
Nutze Access 2003 um die MDB zu erstellen.
Könnte es daran liegen?

Mit freundlichen Grüßen
SpEEDY
Es ist unmöglich etwas Idiotensicher zu machen, weil Idioten so genial sind!

Fred Tomke

Ist das OS Vista oder Win7, kann vielleicht die Datenbank genau von dieser Stelle nicht gelesen werden. Mal woanders hinlegen. Stammverzeichnis von C: und D: mögen Vista und Win 7 nicht recht...

VG, Fred
Fred Tomke
Dipl.-Ing. (FH) Landespflege

[ landscaper - landscape developer - digital landscape and urban design]

SpEEDY

Mahlzeit Fred.
Wir haben über das Thema ADOLisp lange nicht mehr gesprochen. ;)

An dieser Stelle Danke nochmal für das Tool. Hoffe das ich in nächster Zeit wieder mehr "Lipsen" kann. ;)
Hätte mal einen Frage an die, habe den "ConnectString" mit einer "normalen" Datenbank hinbekommen.
Wollte das ganze aber jetzt über eine *.WDW ,also eine Arbeitsdatei, laufen lassen.
Hast du vielleicht Erfahrung damit?

Habe hier einen recht kurze Anweisung gefunden: http://208.74.205.69/t5/ASE-SQL-OLE-ADE/Workgroup-Information-file-mdw-missing-error/td-p/2112604
Meine ursprüngliche ist zu lang.
Code (autolisp) Select
(setq ConnectString  (strcat "Provider=Microsoft.Jet.OLEDB.4.0;User ID=XXX;Data Source=" Datei ";Mode=Share Deny None;Jet OLEDB:System database=XXXX;Jet"
                              " OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk "
                               "Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet"
                               " OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;"))


Die XXX sind jetzt nur Platzhalter. MDW-Datei ist vorhanden!

Erhalte dann aber den Fehler:  Automatisierungsfehler Die Anwendung kann nicht
gestartet werden. Die Informationsdatei für die Arbeitsgruppe fehlt oder ist
exklusiv von einem anderen Benutzer geöffnet.

Vielleicht kennt sich jemand damit aus!
Ich bedanke mich schon mal im voraus.

Grüß
SpEEDY

Es ist unmöglich etwas Idiotensicher zu machen, weil Idioten so genial sind!

Fred Tomke

Hallo, SpEEDY, musste den Eintrag ein zweites Mal schreiben, weil ich bei meiner ersten Antwort auf eine falsche Frage antwortete -  jetzt aber:

Hast Du schon diese Seite angesehen? Da steht etwas zu.

VG, Fred
Fred Tomke
Dipl.-Ing. (FH) Landespflege

[ landscaper - landscape developer - digital landscape and urban design]

Fred Tomke

Achso, und ich finde in deinem String die Security Info nicht (siehe Dein Link).

VG, Fred
Fred Tomke
Dipl.-Ing. (FH) Landespflege

[ landscaper - landscape developer - digital landscape and urban design]

SpEEDY

Vielen Dank für die Hilfe Fred.
Habe versucht wie in deinen Link beschrieben die Entwurfsansicht der "Datenzugriffsseite" zu öffnen, leider erhalte ich dabei immer den den Fehler "Der OLE-Server ist nicht registriert". Habe schon im Netz geschaut was das sein könnte. Habe gefunden das es an Norten Liegen könnte was ich nicht auf den PC haben oder an Bilder, die ich nicht in der MDW habe. Komischerweise hat meine MDW-Datei keine "Datenzugriffsseite" dort sind nur Abfragen.

Naja, werde mal schauen ob ich noch was finde. Ich bedanke mich noch mal und wünsche dir einen schönen Warmen Tag. ;)

Gruß
SpEEDY 
Es ist unmöglich etwas Idiotensicher zu machen, weil Idioten so genial sind!

Fred Tomke

Ja, den wünsch ich Dir auch. Ich sitz grad im Wald und dennoch brennt mir's Fell!
Morgen kommt ja Abkühlung.

Mein Verweis auf die Microsoft-Seite galt inbesondere dem UNC-Pfad. Und die Sache mit der Berechtigung sollte meinen, dass Du den Eintrag Security Info in deinem ConnectionString ergänzt.
Kommst Du denn als Admin ran?

VG, Fred
Fred Tomke
Dipl.-Ing. (FH) Landespflege

[ landscaper - landscape developer - digital landscape and urban design]

SpEEDY

Im Wald sitzen das nenne ich mal Arbeit. ;-D
Ich freue mich über das Wetter, leider muss ich im Büro mir langer Hose sitzen.
Und du weißt wahrscheinlich wie man sich bei den Wetter dann fühlt. ;-D

Das ist ja genau das Problem das ich habe. Die MDB-Datei die ich verwenden möchte, sind für den Admin gesperrt.
Sprich man muss für die entsprechenden Tabellen erst Lese und schreibe Rechte setzen. Die Rechte sind spezial für die Benutzergruppe gesetzt.
Deswegen muss ich mich über die MDW-Datei anmelden.

Ich würde dir gerne die beiden Daten zu Verfügung stellen, das darf ich leider nicht machen. :-( Kundendaten und MDW ist halt Geschütz, bzw. Rechte gedöns. Sorry!!!

Gruß
SpEEDY
Es ist unmöglich etwas Idiotensicher zu machen, weil Idioten so genial sind!

Fred Tomke

OK, fangen wir doch mal einfach an:
Man müsste erst einmal herausbekommen, ob der ConnectionString prinzipiell funktioniert.
Hast Du es mal mit einer einfachen anderen Datenbank mit MDW probiert?

VG, Fred
Fred Tomke
Dipl.-Ing. (FH) Landespflege

[ landscaper - landscape developer - digital landscape and urban design]

SpEEDY

Sorry Fred das ich ich mich erst jetzt melde.
Das Problem ist das ich nicht genau weiß wie ich eine eigen MDW Datei erstellen kann.
Versuche mich mal nächste Woche nochmal damit. Ich melde mich noch mal.

Schönen Diensttag noch.

Gruß
SpEEDY
Es ist unmöglich etwas Idiotensicher zu machen, weil Idioten so genial sind!

SpEEDY

Morgen Fred wollte mich noch einmal melden.
Habe es hingekommen..  ;D ;D ;D

Mit dem ConnectString 

(setq ConnectString  (strcat "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" DatenbankName ";Persist Security Info=False;Jet OLEDB:System Database=.mdw" ))

und

(ADOLISP_ConnectToDB ConnectString USER PASSWORT)

geht es!


Juhuhuh!!! Wollte ich nur mal mitteilen. Danke nochmal für die Hilfe.

MFG

SpEEDY
Es ist unmöglich etwas Idiotensicher zu machen, weil Idioten so genial sind!

Fred Tomke

Hallo, SpEEDY, vielen Dank für die Info. Das ist mit Sicherheit auch für andere hilfreich!

VG, Fred
Fred Tomke
Dipl.-Ing. (FH) Landespflege

[ landscaper - landscape developer - digital landscape and urban design]

SpEEDY

Keine Ursache, immer wieder gerne.

Wollte nur mitteilen das es zu Problemen mit Win 7 uns SP1 gegeben kann. Microsoft hat da die ADO.DLL geändert und man bekommt keinen richtigen zugriff mehr. Habe noch keine richtige Hilfe dafür gefunden.

MFG
SpEEDY
Es ist unmöglich etwas Idiotensicher zu machen, weil Idioten so genial sind!