AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Zugriff auf Perforce-Metadaten mit ODBC: Datenformatproblem?
Thema durchsuchen
Ansicht
Themen-Optionen

Zugriff auf Perforce-Metadaten mit ODBC: Datenformatproblem?

Ein Thema von StTüff · begonnen am 25. Jul 2007 · letzter Beitrag vom 1. Aug 2007
Antwort Antwort
Seite 1 von 3  1 23      
StTüff

Registriert seit: 3. Dez 2002
132 Beiträge
 
Delphi 2006 Enterprise
 
#1

Zugriff auf Perforce-Metadaten mit ODBC: Datenformatproblem?

  Alt 25. Jul 2007, 08:33
Datenbank: Perforce • Zugriff über: ODBC
Hallo!

Ich beschäftige mich momentan mit dem Zugriff auf die Metadaten von Perforce (Software Configuration Management System).
Perforce bietet zum Zugriff eine ODBC-Schnittstelle.
Der Zugriff mit z.B. Excel funktioniert problemlos. Als Beispiel nehme ich mal die Tabelle "users".

Hier liefert Excel:
Zitat:
user; email; fullname; updated; accessed;
Test1; Test1@Test.de; Max Musterman; 03.07.2007 17:52; 03.07.2007 17:52;
Test2; Test2@Test.de; Mia Musterfrau; 03.07.2007 14:59; 24.07.2007 18:07;
Da das so gut funktioniert, dachte ich mir, mach ich mal einen Metadatenviewer unter Delphi:
- Neu Anwendung
- dbgrid, datasource und adotable auf's Formular und alles schön verbunden.
- Connectionstring zusammengeklickt und Tabelle gewählt => Verbindung funktioniert

Im DBGrid wird jetzt folgendes angezeigt:
Zitat:
user; email; fullname; updated; accessed;
(BYTE); (BYTE); (BYTE); 03.07.2007 17:52; 03.07.2007 17:52;
(BYTE); (BYTE); (BYTE); 03.07.2007 14:59; 24.07.2007 18:07;
OK. DBGrid kann wohl das Format der Strings nicht direkt darstellen. Also habe ich mir gedacht: Mal schauen was da ankommt:
DataSource1.DataSet.FieldByName('user').AsString Tja, nun sehe ich im Debugger '0'-Einträge: ... #0,#0 usw.
Nullen kann ich nicht wirklich in einen String konvertieren.

In der Perforcedokumentation steht als "Data Type" für diese Felder VARCHAR(254).

Mache ich hier beim Zugriff etwas falsch? Warum geht es mit Excel und mit Delphi nicht?
Ist es ein Formatproblem (unicode)?

Ich habe leider keinen Ansatzpunkt. Es wäre schön, wenn mir jemand einen Tip geben könnte oder einen Link zu einem ähnlichen Thema.

Veilen Dank und schönen Tag!

StTüff
  Mit Zitat antworten Zitat
StTüff

Registriert seit: 3. Dez 2002
132 Beiträge
 
Delphi 2006 Enterprise
 
#2

Re: Zugriff auf Perforce-Metadaten mit ODBC: Datenformatprob

  Alt 27. Jul 2007, 13:17
Hallo!

Ich bin mir nicht ganz sicher, wie ich die nicht ganz so rege beteiligung an diesem Thread werten soll.
Da gibt es mehrere Möglichkeiten:
- Die Antwort ist so banal, dass jeder denkt: "Da soll der mal selber drauf kommen".
- Ich habe die Fragestellung nicht richtig/ausreichend formuliert und das Problem wird nicht klar.
- Das Problem liegt an Perforce und damit kennt sich keiner aus.
oder
- Es kennt tatsächlich keiner eine möglich Lösung.

Ich wäre über Eure Beteiligung sehr dankbar, auch wenn Ihr nur einen Hinweis (und nicht die endgültige Lösung) habt.

Gruß und ansonsten schon mal schönes Wochenende,

StTüff
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: Zugriff auf Perforce-Metadaten mit ODBC: Datenformatprob

  Alt 27. Jul 2007, 19:15
Hallo Stephan,

ich kann die Users problemlos auslesen.

Freundliche Grüße
Angehängte Dateien
Dateityp: zip ado-perforce_123.zip (1,7 KB, 9x aufgerufen)
  Mit Zitat antworten Zitat
StTüff

Registriert seit: 3. Dez 2002
132 Beiträge
 
Delphi 2006 Enterprise
 
#4

Re: Zugriff auf Perforce-Metadaten mit ODBC: Datenformatprob

  Alt 30. Jul 2007, 08:17
Hallo Marabu!

Danke für Deine Hilfe. Kannst Du noch ein wenig mehr dazu sagen, was Du gemacht hast?
Ich vermute, dass Du keine Perforceinstallation hast, oder? Du hast also vermutlich eine Datenbankdatei zum Testen erzeugt, die den angegebenen Datentyp enthält (die UDL-Datei war übrigens leider nicht mit dabei).
Ist das soweit korrekt?

Mit dieser Erkentnnis kann man dann eigentlich ausschließen, dass es am Datentyp liegt. Es muss also noch eine andere Besonderheit geben.

Anbei habe ich mal mein Beispiel angehängt. Dieses funktioniert aber natürlich nur in Verbindung mit Perforce und der eingerichteten Reporterweiterung (Benutzer-DSN wie im Screenshot konfiguriert).

Vielleicht hat ja jemand eine Perforceinstallation und kann das mal testen. Vielleicht erkennt auch jemand auf Grund der Einstellungen einen Fehler?!

Gruß und vielen Dank,

StTüff
Miniaturansicht angehängter Grafiken
datasourceconf_172.jpg  
Angehängte Dateien
Dateityp: zip p4comtest_171.zip (6,7 KB, 3x aufgerufen)
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: Zugriff auf Perforce-Metadaten mit ODBC: Datenformatprob

  Alt 30. Jul 2007, 17:00
Hallo Stephan,

ich hatte mir die aktuelle Perforce Trial nebst Reporting von der Hersteller-Seite gezogen und eine Standardinstallation durchgeführt.

Ich hatte die UDL-Datei durch ein Aktivieren der Connection in einen String verwandelt, aber wohl schon vorher das Demo-Projekt gepackt, ich Schussel. Anbei die UDL-Datei. Ich hatte kein Password verwendet und der User muss natürlich auch angepasst werden.

Schon beim Öffnen deines Projektes P4COMTEST sehe ich die Daten im Grid. Nach zwei Anpassungen am Quelltext (eine Methode und eine Funktion ohne Implementierung entfernt) lässt sich das Projekt bei mir übersetzen und ausführen. Keine Probleme.

Freundliche Grüße
  Mit Zitat antworten Zitat
StTüff

Registriert seit: 3. Dez 2002
132 Beiträge
 
Delphi 2006 Enterprise
 
#6

Re: Zugriff auf Perforce-Metadaten mit ODBC: Datenformatprob

  Alt 30. Jul 2007, 17:14
Hallo!

Bedeutet das, dass bei Dir auch mein Projekt so läuft, dass Du die Daten (also auch die Strings) angezeigt bekommst?


Das würde mich völlig in Verzweiflung stürzen....
Dann gäbe es nur noch 2 Möglichkeiten:
1. Bei meinem Delphi ist was anders, oder
2. Dein Server läuft nicht im internationalised mode und meiner tut das vermutlich (muss ich zur Sicherheit noch mal prüfen). Ich bin diesbezüglich auch mit dem Support von Perforce in Kontakt. Mal sehen, ob ich herausbekomme, ob es ein "unicode-Problem" sein kann.

Auf jeden Fall vielen Dank für Deine Bemühungen!

Ich melde mich wieder....

StTüff
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#7

Re: Zugriff auf Perforce-Metadaten mit ODBC: Datenformatprob

  Alt 30. Jul 2007, 17:40
In manchen Fällen wird der Datentyp nicht korrekt durch die Treiberschichten bis nach oben in die Delphi VCL durchgereicht.
Statt ftString kommt ftBytes oder ftVarBytes an.
Das (Standard-)DBGrid von Delphi ist nicht in der Lage, diesen Datentyp anzuzeigen.
Dem lässt sich aber abhelfen; siehe Code-Library:
http://www.delphipraxis.net/internal...ct.php?t=46363
Andreas
  Mit Zitat antworten Zitat
StTüff

Registriert seit: 3. Dez 2002
132 Beiträge
 
Delphi 2006 Enterprise
 
#8

Re: Zugriff auf Perforce-Metadaten mit ODBC: Datenformatprob

  Alt 31. Jul 2007, 08:04
Hallo Marabu!

Ich habe bei Deinem Projekt mal den Connectionstring gegen den ausgetauscht den ich verwende:
Code:
Provider=MSDASQL.1;Persist Security Info=False;User ID=sbaur;Data Source=Perforce;
Extended Properties="DSN=Perforce;UID=sbaur;"
Leider wird dann in Deinem Projekt auch kein username usw. angezeigt (Anzeige im Grid immer "(BYTE)") und im String stehen lauter '#0'(vemutlich 254?)).

Hallo Shima!

Deinem Tipp bin ich auch mal nachgegeangen und habe folgendes versucht:
Edit1.text:=HexStringToStr(DataSource1.DataSet.FieldByName('user').AsString); Leider funktioniert auch das nicht. Vermutlich sind die Daten an der Stelle schon verloren (wie gesagt es sind lauter '#0'; siehe auch Screenshot anbei).

Es ist zum Verrückt werden

Vielleicht hilft mir der Perforce-Support weiter. Wenn Euch noch was einfällt....

Gruß vielen Dank,

StTüff
Miniaturansicht angehängter Grafiken
screen_debug_923.jpg  
  Mit Zitat antworten Zitat
StTüff

Registriert seit: 3. Dez 2002
132 Beiträge
 
Delphi 2006 Enterprise
 
#9

Re: Zugriff auf Perforce-Metadaten mit ODBC: Datenformatprob

  Alt 31. Jul 2007, 08:15
... ach ja, Marabu: Kannst Du bitte noch die UDL-Datei hochladen, ich vermute, dass hast Du vergessen.

Vielen Dank!

StTüff
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#10

Re: Zugriff auf Perforce-Metadaten mit ODBC: Datenformatprob

  Alt 31. Jul 2007, 08:51
Guten Morgen,

hier die UDL-Datei. Bin gestern darüber gestolpert, dass die DP UDL-Dateien nicht mag. Als ODBC-DSN verwende ich den bei der Installtion bereit gestellten. Außer UserID und Password (bei mir leer) habe ich keine Angaben gemacht. Insbesondere setze ich keine Extended Properties.

Vielleicht hast du gar keinen Konfigurationsfehler im Connection String gemacht. Wie Andreas schon geschrieben hat deutet die Anzeige (BYTE) darauf hin, dass der Treiber das VARCHAR-Feld nicht korrekt erkannt hat. Als Feldgröße solltest du den Wert 4 vorfinden. Du solltest mal mit einem anderen ODBC-Treiber testen. Meiner ist Version 2007.01.12.122.

Freundliche Grüße
Angehängte Dateien
Dateityp: zip perforce_138.zip (299 Bytes, 2x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz