Laden...

Database-Explorer

Erstellt von tom-essen vor 13 Jahren Letzter Beitrag vor 5 Jahren 126.437 Views
B
76 Beiträge seit 2007
vor 13 Jahren

zu 2.) Da musst du nichts umstellen, wollte nur wissen, ob es daran liegt. Die Herausforderung dabei ist, dass diese Dialoge zur Laufzeit erstellt werden, da muss ich mal schauen, wie ich das mit in die Größenberechnung einbauen kann.

Alles klar!

"Fehler sind das Tor zu neuen Entdeckungen"

B
94 Beiträge seit 2007
vor 13 Jahren

Hi,

gibt es schon was neues in Bezug auf Abfragen nach dem Inhalt einer bestimmten Spalte für die DBASE Dateien?

Gruß Bounty

tom-essen Themenstarter:in
1.815 Beiträge seit 2005
vor 13 Jahren

Hallo!

gibt es schon was neues in Bezug auf Abfragen nach dem Inhalt einer bestimmten Spalte für die DBASE Dateien?

Meinst du Konstrukte in der Form

select spalte1, spalte2 from...

Wenn nein: was dann.
Wenn ja: Ist in Arbeit, der Lexer und Syntax-Parser für SELECT-Statements ist bereits fertig, als nächstes steht die Integration in die entsprechenden Adapter auf dem Plan.

Nobody is perfect. I'm sad, i'm not nobody 🙁

B
94 Beiträge seit 2007
vor 13 Jahren

Hallo,

klingt ja sehr gut. Ich meine sowas:


SELECT Spalte oder * FROM Table WHERE SPALTE = ''

Das komplette einlesen mit select * bie Nutzung deiner DLL's klappt bereits. Ist allerdings sehr langsam.

Gruß Bounty

tom-essen Themenstarter:in
1.815 Beiträge seit 2005
vor 13 Jahren

Hallo!

Es gibt wieder eine neue Version, ist aber diesmal nicht viel dazu gekommen:*TrayIcon-Menü um datenbank-gebundene Snippet-Liste erweitert *Kontextmenü in der TreeView an einigen Punkten erweitert *Die zuletzt verwendeten Abfragen können nun pro Datenquelle über das Kontextmenü abgerufen werden (max. Anzahl in den Einstellungen, Standard ist 20) *Im- und Export von Snippets möglich (ACHTUNG! Z.Zt. noch keine Prüfung auf doppelte Einträge beim Import)

Bzgl. SQL-Parser bei den dateibasierten Datenquellen bin ich noch nicht weiter gekommen., ist ja doch eine etwas größere Aufgabe.

Nobody is perfect. I'm sad, i'm not nobody 🙁

E
107 Beiträge seit 2008
vor 13 Jahren

Hallo,

erstmal Danke für das nützliche Tool!

Ich bin gerade ein wenig am Testen und die ersten Dinge, die mir aufgefallen sind:

  1. Wenn ich eine SQL-Datenquelle hinzufügen will (in meinem Fall eine MS SQL-Datenquelle), dann hängt der Mauszeiger teilweise/ruckelt teilweise ca. 3-4 Sekunden und man hat das Gefühl, dass irgendwas nicht so richtig passt, bis das Fenster aufgeht, in dem die Datenquellen dann auswählbar sind. Das ist zwar nur eine Schönheitskorrektur, aber ich fände es viel besser, wenn erst das Fenster mit der SQL-Serverauswahl aufgehen würde und zu Anfang sowas wie "Server werden gesucht.." in der Combobox steht, bis die SQL-Server gefunden wurden (danach ist dann natürlich die Auswahl in der Combo möglich..) Zusätzlich vielleicht während der Suche den Mauszeiger noch in die Sanduhr verwandeln.

  2. Ich habe meine Datenquelle hinzugefügt und mir eine Tabelle anzeigen lassen. Mit rechter Maustaste auf eine Spalte kann man "Ändern wählen", allerdings stürzt bei mir das Programm dann ab (Meldung "An der Position 0 befindet sich keine Zeile").

  3. Ich bekomme immer nur die erste Zeile meiner Tabellen angezeigt. Die Spalten sind alle da; doch egal wieviel Zeilen die Tabelle beinhaltet, es wird immer nur die erste angezeigt.

Falls iwas der 3 Punkte schon angesprochen wurde -> Sorry. Habe nicht alle Posts gelesen!

Nochmal Danke für deine Mühe!

Gruß

Ich lasse mich gerne korrigieren! (:

tom-essen Themenstarter:in
1.815 Beiträge seit 2005
vor 13 Jahren

Hallo!

@eveN:
ad 1.) Die Eigenschaftsdialoge für die Datenquelleneigenschaften werden alle dynamisch erstellt. Dass hat leider den nachteiligen Effekt, dass - zumindest beim ersten Aufruf eines MSSQL-Eigenschaftsfensters - dann erst die Datenbanken gesucht werden können (was mich zugegeben selbst auch manchmal stört).
Aber den Vorschlag der asynchonen Auffüllung der ComboBox greife ich auf, und werde ihn bei Gelegenheit umsetzen.

ad 2.) Ups, das war eigentlich erstmal nur für mich zum testen und sollte garnicht in die offizielle version rein 😁

ad 3.) DAS kann ich mir absolut nicht erklären. Da schau doch mal bitte in die LogFiles (oder Menü Hilfe, Zeige Protokoll) was da bzgl. dieser Anfrage drin steht.

Nobody is perfect. I'm sad, i'm not nobody 🙁

tom-essen Themenstarter:in
1.815 Beiträge seit 2005
vor 13 Jahren

Hallo!

@all:
Habe gerade festgestellt, dass unter 64bit die Jet-Treiber nicht funktionieren, weil dies von MS nicht supported wird 😦. Werde also demnächst entweder nur noch eine x86-Version anbieten oder beide parallel.

EDIT: Habe noch ein paar Fehler bzgl. MSSQL gefunden (wenn z.B. in den Tabellen Leerzeichen sind). Und auch der Aufruf der Snippets aus dem Tray-Menü funktioniert noch nicht wie gedacht. An Lösungen wird gearbeitet.

Nobody is perfect. I'm sad, i'm not nobody 🙁

M
334 Beiträge seit 2007
vor 12 Jahren

Hallo,

vielen Dank für das Programm. 😃

ich hätte auch noch einen Featurewunsch:
Wäre es möglich, die Einstellungsdatei an einem bestimmten Ort zu speichern und zu laden? Dann könnte man das Programm + Einstellungen auf einem USB-Stick speichern und z.B. zum Kunden mitnehmen.

tom-essen Themenstarter:in
1.815 Beiträge seit 2005
vor 12 Jahren

Hallo!

@mabo:
Da ist bereits jetzt schon möglich:
Kopiere die Einstellungsdatei ins Anwendungsverzeichnis und füge anschließend in der Datei das Attribut UseLocalConfigFile="true" zum Root-Element hinzu.

<configuration name="Database-Explorer" UseLocalConfigFile="true">

Somit werden dann auch Änderungen nur noch lokal geschrieben.

@all:
Es gibt wieder eine neue Version.
Geändert wurde u.a. der CSV-Import, dieser ist nun sehr viel schneller (bei mir 50MB in unter 8sek. eingelesen). Zudem kann man in den Einstellungen einer CSV-Datei nun auch selbst Spaltennamen angeben, für CSV-Daten mit fixen Spaltenbreiten kann man die Positionen der Spalten angeben (dabei auf die Reihenfolge achten).
Lässt man in den Settings den Wert für das Trennzeichen leer oder auf "Auto", versucht das Programm nun selbständig, das Trennzeichen zu ermitteln und prüft, ob die erste Zeile Spaltennamen enthält. Die Erkennung fixer Spaltenbreiten wird nicht unterstützt, dass kann nicht funktionieren (z.B. die BLZ-Liste der Bundesbank kann man nicht mit Logik entschlüsseln) (EDIT: Bin da mittlerweile doch etwas weiter, einfach probieren, ob es mit einer Datei funktioniert).

In der Toolbar des Ergebnispanel ist der Schalter für die Auswahl der Datenquelle nun ein Splitbutton: Per Dropdown-Menü hat man nun direkten Zugriff auf die Einstellungen der Datenquelle (besonders hilfreich, wenn man eine Datei per Drag'n'Drop nur zum Anzeigen geöffnet hat), ggf. muss man danach manuell die Abfrage erneut ausführen.

Habe zudem einige Fehler beim MSSQL-Adapter beseitigt (gab' teilweise Probleme mit den Schema-Angaben und bei Tabellenname mit Leerzeichen).

Für ODBC-Datenquellen können nun auch die Tabellenspalten angezeigt werden.

EDIT: Beim Start des Programms werden offen Abfragen der letzten Sitzung (falls diese gespeichert wurden) nun zwar angezeigt, aber nicht ausgeführt. Zum einen gab es dabei teilweise Anzeigefehler, zum anderen musste ich aber selbst erfahren, dass eine vergessene INSERT- oder UPDATE-Abfrage beim nächsten Start viel durcheinanderbringen kann.

Nobody is perfect. I'm sad, i'm not nobody 🙁

M
49 Beiträge seit 2005
vor 12 Jahren

Hi Tom,
mir ist gerade aufgefallen, dass eventuell eine Zeile abgeschnitten ist.
Ich habe mal nen Screenshot angehängt.

Grüße,
David

tom-essen Themenstarter:in
1.815 Beiträge seit 2005
vor 12 Jahren

Hallo!

@maYer:
Die Zeile ist bewusst so klein gehalten. Das DataGridView-Control legt immer eine zusätzliche zeile an, um dort neue Datensätze eintragen zu können. Da es mir bisher nicht gelungen ist, diese zeile komplett auszublenden, habe ich Sie auf die kleinste Größe reduziert.

Nobody is perfect. I'm sad, i'm not nobody 🙁

S
269 Beiträge seit 2010
vor 12 Jahren

@tom-essen:
Das DataGridView-Control hat eine Property mit dem Namen AllowUserToAddRows.
Wenn ich die bei mir auf False stelle dann ist diese eine Zeile zum Hinzufügen nicht mehr da. Vllt. hilft dir das ja weiter.

Z
520 Beiträge seit 2007
vor 12 Jahren

Wenn ich eine Abfrage mache und auf Undock klicke klicke bekomme ich eine Fehlermeldung

tom-essen Themenstarter:in
1.815 Beiträge seit 2005
vor 12 Jahren

Hallo!

@zerberos:
Kann ich zwar spontan nicht reproduzieren, aber dank der Fehlermeldung habe ich zumindest einen Ansatz. Wird geprüft...

EDIT: Fehler gefunden. Der Fehler tritt auf, wenn noch kein Ergebnis da ist. Wird behoben

Nobody is perfect. I'm sad, i'm not nobody 🙁

S
178 Beiträge seit 2009
vor 12 Jahren

Hallo,

erstmal gefällt mir das Tool schon ganz gut, aber ich fände es gut,wenn man auch andere Extensions angeben könnte als z.B. dbf bei DBASE Dateien, da es ja durchaus vorkommt, dass die Dateinamenserweiterung anders ist.

Wäre toll, wenn du das noch einbauen könntest.

tom-essen Themenstarter:in
1.815 Beiträge seit 2005
vor 12 Jahren

Hallo!

Wollte nur mal mitteilen, dass die bisherigen Meldungen alle gesammelt werden, ich aber z.Zt. nicht dazu komme, diese zu bearbeiten. Zum einen bin ich zeitlich im Moment etwas eingeschränkt, zum anderen nutze ich die freie zeit gerade, um die Basis, also die Datenquellen-Adapter zu erweitern. Dadurch soll es dann auch möglich werden, Ergebnisse oder Abfragen direkt in andere Datenquellen zu schreiben / exportieren (z.B. mehrere CSV-Dateien schnell mal in eine SQL-DB schieben, dort mit SQL-befehlen entsprechend verknüpfen und das Ergebnis wieder in CSV exportieren).

Nobody is perfect. I'm sad, i'm not nobody 🙁

209 Beiträge seit 2007
vor 12 Jahren

Ich hab mal eine kleine Frage,
wie hinterlege ich ein Passwort bei einer ODBC Verbindung?
Da ohne das Passwort keine Verbindung aufgebaut werden kann...

lg Jo0oker

tom-essen Themenstarter:in
1.815 Beiträge seit 2005
vor 12 Jahren

Hallo Jo0oker,

geht z.Zt. nicht. Ich war davon ausgegangen, dass man das Passwort immer direkt in der ODC-Verbindung angibt. Werde dies bei Gelegenheit ändern.

Nobody is perfect. I'm sad, i'm not nobody 🙁

tom-essen Themenstarter:in
1.815 Beiträge seit 2005
vor 12 Jahren

Hallo!

Habe gerade eine neue Version hochgeladen. Geändert wurde folgendes:*Bei CSV-Dateien mit in Hochkommata eingeschlossenen Spaltenbeschreibungen wurde bisher die letzte Spalte "unterschlagen". Dies wurde behoben. *Im Ergebnis kann man mit Linksklick auf die Spaltenheader Spalten entfernen (die aktuelle, alle leeren, ...) *Startet man eine Abfrage und dockt den Reiter ab bevor das Ergebnis da war, kam eine Exception. Dies wurde behoben.

Nobody is perfect. I'm sad, i'm not nobody 🙁

tom-essen Themenstarter:in
1.815 Beiträge seit 2005
vor 12 Jahren

Hallo!

Sollte das Wetter und meine Zeitplanung bestand haben, komme ich am WE hoffentlich mal wieder dazu, ein paar BugFixes und Erweiterungen umzusetzen. Wenn also noch jemand eine Idee hat, oder einen Fehler gefunden hat (der hier noch nicht genannt wurde), dann immer her damit.

Nobody is perfect. I'm sad, i'm not nobody 🙁

tom-essen Themenstarter:in
1.815 Beiträge seit 2005
vor 12 Jahren

Hallo!

Habe gerade eine neue Version online gestellt (wie üblich über den Link im ersten Beitrag):*Benutzername und Passwort sind nun für ODBC-Quellen optional angebbar (also z.B. auch nur Passwort) *Bei Snippets, wo der Platzhalter "{tablename}" verwendet wird, stürzt das Programm nun nicht mehr ab, wenn der Tabellenname kürzer als dr Platzhalter ist *Einlesen von CSV-Dateien etwas beschleunigt *Einige Fehler beim Einlesen von HTML-Dateien behoben (Encoding-Prüfung) *Wird nun ein Link in die Zwischenablage kopiert, erscheint ein Hinweisfenster über dem Tray-Bereich. KLickt man dort auf den Link, werden die Tabellen in der verlinkten HTML-Seite geöffnet (das Hinweisfenster ist noch beta). Das Gleiche gilt für lokale Dateien (diesbzgl. ist langfristig auch ein Explorer-Kontextmenü-Eintrag geplant).

Weitere Änderungen betreffen die Basis. So wurden einige Schnittstellen erweitert, um das Erstellen und Umbenennen von Tabellen zu ermöglichen. Sobald die Tests abgeschlossen sind, ist damit der Grundstein für den Export von Abfragen in unterstützte Datenquellen gelegt (also z.B. ein MSSQL-Abfrage-Ergebnis direkt in Excel oder Access speichern, oder umgekehrt Excel-Tabellen direkt in eine echte Datenbank zu kopieren).

Alle die auf die Möglichkeit warten, einzelne Spalten dateibasierter Datenquellen abzufragen, muss ich leider wieder enttäuschen. Ebenso bin ich noch nicht dazu gekommen, weitere Datenquellen zu unterstützen.

EDIT: Startet man den DBE per Commandline mit einer Datei-Angabe (voller Pfad), so wird die Datei geöffnet, falls der Dateityp unterstützt wird. Dies funktioniert auch bei bereits laufenden Instanzen.

Nobody is perfect. I'm sad, i'm not nobody 🙁

tom-essen Themenstarter:in
1.815 Beiträge seit 2005
vor 12 Jahren

Hallo!

Habe noch einen Fehler bzgl. ODBC-Benutzer-/Passwort-Angabe behoben, und im Tabellenmenü den Punkt "Umbenennen" hinzugefügt (funktioniert aber nicht bei URL-Dateiquellen sowie ODBC-Datenquellen).

Zudem ist mir aufgefallen, dass teilweise die Infofenster bzgl. Url's in der Zwischenablage mehrfach aufkommen. In einigen Fällen ist dabei sogar der DBE abgestürzt, in anderen Fällen hat er einfach nicht auf die Änderung reagiert.

Daher ist diese Funktion per default deaktiviert, kann aber über die Einstellungen aktiviert werden.

Nobody is perfect. I'm sad, i'm not nobody 🙁

tom-essen Themenstarter:in
1.815 Beiträge seit 2005
vor 12 Jahren

Hallo!

Habe gerade mal wieder das Phänomen gehabt, dass der DBE b eim Minimieren und Maximieren (zwei offene Result-Panels) den kompletten rechner (Quad-Core) für einige Sekunden lahm legt, obwohl laut Taskmanager nur eine CPU voll belastet wird.
Dass habe ich mittlerweile auf zwei Rechnern erlebt.

Hat jemand ähnliches erlebt und evtl. gezielt reproduzieren können?

Nobody is perfect. I'm sad, i'm not nobody 🙁

E
4 Beiträge seit 2011
vor 12 Jahren

Hallo,...

tut mir leid, wenn ich die positiven Meinungen unterbrechen muss,
das Tool an sich ist nicht schlecht (Lob), jedoch läuft der Speicher bei größeren Abfragen voll und das Prog. stürzt ab....

test

tom-essen Themenstarter:in
1.815 Beiträge seit 2005
vor 12 Jahren

Hallo!

@exiter30:
Wow! Was ist das für eine Abfrage?
Ich hab' mal eine Abfrage einer SQL-Tabelle gemacht: 2.7mio Zeilen, 21 Spalten, Speicherverbrauch liegt bei 2.6GB. Hat knapp über 2min. gedauert, aber funktioniert.
**
Interessant, wäre, was im Logfile steht.**

EDIT: Hab' gerade festgestellt, dass er anscheinend den Speicher nicht wieder freigibt, auch wenn das Panel geschlossen wird, muss ich noch prüfen.

Bzgl. Speicher: Ich hab' bei mir 64bit-System, entsprechend läuft der DBE auch mit 64bit. Hab
den Prozess mittlerweile auf stolze 4GB gehieft, läuft immer noch 😉 (hab' aber auch 6GB RAM hier). Ich muss' das mal zu Hause testen, da hab' ich nur 32bit und 3GB RAM frei.

Nobody is perfect. I'm sad, i'm not nobody 🙁

S
401 Beiträge seit 2008
vor 12 Jahren

Wow! Was ist das für eine Abfrage?
Ich hab' mal eine Abfrage einer SQL-Tabelle gemacht: 2.7mio Zeilen, 21 Spalten, Speicherverbrauch liegt bei 2.6GB. Hat knapp über 2min. gedauert, aber funktioniert.

Sein Explorer gibt einen Speicherverbrauch von 1.2 GB an.

Generell. Man sollte bei großen Abfragen immer den zur verfügungstehenden Speicher im Blick behalten. Evtl. auch vor der Aktion den benötigten Speicher abschätzen und ggf. den Benutzer informieren/warnen. Zudem würde sich der Benutzer über einen Abbrechen-Button freuen. Es ist einfach nicht schön, wenn das Programm mehrere Minuten/Stunden arbeitet und man die Aktion nicht unterbrechen kann.

Gruß, Thomas

tom-essen Themenstarter:in
1.815 Beiträge seit 2005
vor 12 Jahren

Hallo!

@Siassei:

Sein Explorer gibt einen Speicherverbrauch von 1.2 GB an.

Mich interessiert dabei eher die Anzahl Zeilen und Spalten (also z.B. 5mio Zeilen bei 2 Spalten, oder eher umgekehrt).

Man sollte bei großen Abfragen immer den zur Verfügung stehenden Speicher im Blick behalten. Evtl. auch vor der Aktion den benötigten Speicher abschätzen und ggf. den Benutzer informieren/warnen

Das wird schwierig. Dazu müsste man zumindest die Zeilenanzahl abfragen, was bei verschachtelten Abfragen schon doppelten Aufwand für den SQL-Server bedeutet.
Und auch dann kann man immer noch nicht abschätzen, wie viel an Daten rüber kommt (wenn z.B. BLOB-Spalten in der Abfrage enthalten sind).
EDIT: Evtl. kann man allgemein den Speicherverbrauch des DBE überwachen, und bei Überschreitung einer benutzerdefinierten Schwelle eine Warnung ausgeben. Das werde ich mal mit in meine Liste aufnehmen. Danke für die Idee.

Zudem würde sich der Benutzer über einen Abbrechen-Button freuen. Es ist einfach nicht schön, wenn das Programm mehrere Minuten/Stunden arbeitet und man die Aktion nicht unterbrechen kann.

Abfrage abbrechen geht jederzeit (über den roten runden Knopf, der nach einer Abfrage immer zum Refresh-Button wird), und während der Abfragen ist die Anwendung nicht blockiert.

Nobody is perfect. I'm sad, i'm not nobody 🙁

tom-essen Themenstarter:in
1.815 Beiträge seit 2005
vor 12 Jahren

Hallo!

Nach langer Zeit endlich mal wieder ein Udate.
Folgendes hat sich geändert:*Diverse kleine Fehlerbehebungen bzw. zusätzliche Abfangroutinen bei Datenabfragen *Für alle dateibasierten Datenquellen ist nun die Selektierung einzelner Spalten möglich, ebenso wie einfache Abfrageprüfungen und Sortierung. Einzelne Gruppierungen sind noch nicht möglich, ein DISTINCT sollte aber funktionieren.

select distinct vorname, nachname from personen where anrede='Herr' order by nachname asc, vorname desc

*Erweitertes Kontextmenü bei Klick auf linken Zeilenrand, u.a. Entfernung doppelter zeilen (DISTINCT) *Alphabetische Sortierung des TreeView über die Programmeinstellungen möglich *Kontextmenü in TreeView und Einstellungsfenstern nun auch per tastatur aufrufbar (ALT-F10 oder Windows-Kontextmenü-Taste) *Markiert man einen Teil einer Abfrage und refresht dann (z.B. mit F5) wird (wie im SQL-management-Studio) nur die Markierung als Abfrage ausgeführt *Die Erkennung des Formats einer CSV-Datei wurde überarbeitet, nun werden auch CSV-Dateien mit konstanten Spaltenbreiten rel. genau erkannt *Der Excel-Import wurde bzgl. der Spaltennamen etwas überarbeitet *EDIT: Wird eine Abfrage abgeschlossen, während das Fenster minimiert ist, erscheint eine Mitteilung über dem Tray-Bereich. Ein Klick auf die Meldung, und das Panel öffnet sich

Nobody is perfect. I'm sad, i'm not nobody 🙁

tom-essen Themenstarter:in
1.815 Beiträge seit 2005
vor 12 Jahren

Hallo!

Noch ein Update:*Bei Oracle-Datenbanken wird nun nach verfügbaren Datenbanken gesucht und die namen zur Auswahl angezeigt, ähnlich wie bei MS SQL-Datenbanken *Bei laufenden Anfragen wird nun in der Statusleiste des Panels die aktuelle Dauer angezeigt *Bei erneuter Ausführung einer Abfrage wird das aktuelle Ergebnis entfernt *Bei CSV-Dateien mit festen Spaltenbreiten (also ohne Trennzeichen) werden bei automatischer Erkennung die Spalteninformationen in den Einstellungen gespeichert und können so nachträglich angepasst werden *Beim Öffnen eines Zweigs in der TreeView wurde die Anzeige optimiert: Die Animation flackert nun kaum noch und die TreeView wird deutlich schneller aufgebaut.

Nobody is perfect. I'm sad, i'm not nobody 🙁

U
1.688 Beiträge seit 2007
vor 12 Jahren

Hallo,

vielen Dank für das nützliche Programm!

Bei Oracle-Datenbanken wird nun nach verfügbaren Datenbanken gesucht und die namen zur Auswahl angezeigt, ähnlich wie bei MS SQL-Datenbanken

Hmm, das wollte ich für MSSQL vorschlagen. Bei mir geht das nämlich nicht. Wie kann ich die Funktion aktivieren? Es gibt zwar eine ComboBox mit Vorschlägen für den Server selbst, bei der Datenbank habe ich jedoch nur eine Textbox. Eine Liste vorhandener Datenbanken wäre sehr hilfreich, allein schon für "AdventureWorks", aber auch für eigene.

Bist Du schon mal dazu gekommen, nach Unterstützung für SQL Server CE (compact) zu schauen?

Edit: Noch eine "Kleinigkeit" - möchte ich z. B. eine neue Quelle für MSSQL hinzufügen, friert beim ersten Versuch nach dem Start der Anwendung für ein paar Sekunden komplett der Mauszeiger ein. Seltsam.

tom-essen Themenstarter:in
1.815 Beiträge seit 2005
vor 12 Jahren

Hallo!

das wollte ich für MSSQL vorschlagen

Ist auch geplant, allerdings muss ich dazu den Dialog für die Einstellungen stark anpassen (bzw. aufgrund anderer Anforderungen komplett neu schreiben). Bin da zwar auch schon dran, kann aber noch eine Weile dauern (Schätzungen möchte ich dazu lieber nicht abgeben 😉 ).

Noch eine "Kleinigkeit" - möchte ich z. B. eine neue Quelle für MSSQL hinzufügen, friert beim ersten Versuch nach dem Start der Anwendung für ein paar Sekunden komplett der Mauszeiger ein.

Das kommt daher, weil beim ersten Mal intern nach allen verfügbaren MS SQL-Servern gesucht wird. Das Einfrieren kommt dadurch, dass die UI solange auf das Ergebnis wartet, was natürlich ein Design-Fehler ist. Besser wäre es, wenn die Combobox über einen Hintergrund-Thread gefüllt würde. Ist ebenfalls bereits geplant (s.o.).

Aktuell bin ich dabei, kleinere Fehler auszubessern, und die eine oder andere Zusatz-Funktion einzubauen.

Spätestens um die Weihnachtsfeiertage wird es was neues geben (ich hoffe natürlich viel früher), dann kommt ja auch der 1. Jahrestag des DBE.

23.11.2011 Nachtrag: Bin gerade dabei, Unterstützung für weitere RDBMS einzubinden, etwas Probleme bereitet mir noch SQL Compact, weil ich damit null Erfahrung habe.

Nobody is perfect. I'm sad, i'm not nobody 🙁

tom-essen Themenstarter:in
1.815 Beiträge seit 2005
vor 12 Jahren

Hallo!

Es ist mal wieder soweit, im ersten Beitrag liegt eine neue Version zum Download bereit, sowie die komplette Liste der unterstützten Datenquellen.

Folgendes ist neu / geändert:*Support für MS SQL Compact *Support für SQLite (wer es mit den Firefox-Dateien ausprobieren möchte: Es funktionieren nicht alle, weil FF teilweise die Dateien komplett gesperrt hat, wenn er läuft) *Kein Blockieren mehr beim ersten Aufruf der MS SQL-Datenquellen-Auswahl *Es wurde ein SQL-Parser eingebaut. Ist jetzt nicht das Nonplusultra, aber die Standard-SQL-Anweisungen schafft er in der Regel. Das Ergebnis kann über das Symbol mit dem Baumdiagramm (Tooltip "Show query tree") angezeigt werden (am Ausdruck wird noch gearbeitet). Ist dieses ausgegraut, konnte die Anfrage nicht geparst werden (der komplette Fehler steht dann im Protokoll, Aufrufbar über die Hilfe).
Vorteile:
In der Ergebnisansicht können nun die Spalten in vielen Fällen der ursprünglichen Tabelle zugeordnet werden. Ist der Spaltenname unterstrichen, kann man mit einem Rechtsklick sehen, zu welcher Tabelle die Spalte gehört und wie diese ursprünglich heißt. Zusätzlich ist damit nun eine Hervorhebung bestimmter Ergebnisse möglich (siehe nächster Punkt).

*Mit einem Rechtsklick auf eine Zelle im Ergebnis öffnet sich nun ein Kontextmenü:
Abfrage: Öffnet eine wählbare Tabelle, und filtert nach den Inhalten einer ebenfalls auszuwählenden Spalte.
Daten aus xxxxx: Öffnet die Tabelle xxxxx, zu welcher die Spalte gehört und filtert nach diesem Wert
Hervorhebung: Siehe nächster Punkt

*Man kann nun sog. Hervorhebungen definieren. Dabei wird für einen bestimmten Wert einer bestimmten Spalte in einer bestimmten Tabelle definiert, wie diese beim Auftreten in einem Ergebnis verdeutlicht werden soll. Aktuell gibt es lediglich die optische Hervorhebung (Definition von Schrift, Farbe und Hintergrund möglich). Die Hervorhebung kann wahlweise nur für die betroffene Zelle oder die gesamte Zeile erfolgen. *Anzeige der dateibasierten Datenquellen-namen geändert (zuerst Dateiname, dann Verzeichnis bzw. Basis-URL)

EDIT: Support für Firebird, PostgreSql und DB2 kommt erstmal nicht, weil ich Probleme habe, die passenden ADO.NET-Provider zu besorgen und / oder einzubinden.

Als nächstes wird Datenbank-Dokumentation kommen, weiterhin geplant ist Intellisense.
Danach werden erstmal die Schnittstellen weiter ausgebaut, um auch Prozeduren und Indizees anzeigen zu lassen und Daten bei einfachen Abfragen direkt im Ergebnis ändern zu können.

Nobody is perfect. I'm sad, i'm not nobody 🙁

M
334 Beiträge seit 2007
vor 12 Jahren

Die Unterstützung für SQL Compact finde ich super. 👍

Und einen Fehler habe ich auch gefunden: Als Abfrage "Select count(1) from tabelle" eingeben und auf Show query tree klicken. (Datenbank war MS SQL falls es wichtig ist)

Fehlermeldung:
************** Ausnahmetext **************
System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
bei TD.Additional.Data.Parser.SqlParser.ParseIdentifier(DslElement element)
bei TD.Additional.Data.Parser.SqlParser.ParseToken()
bei TD.Additional.Data.Parser.SqlParser.ParseExpession()
bei TD.Additional.Data.Parser.SqlParser.ParseSelectCommand()
bei TD.Additional.Data.Parser.SqlParser.ParseKeyword()
bei TD.Additional.Data.Parser.SqlParser.ParseToken()
bei TD.Additional.Data.Parser.SqlParser.Parse()
bei DatabaseExplorer.Controls.ResultViewPanel.GetParser(String query)
bei DatabaseExplorer.Controls.ResultViewPanel.toolStripButtonShowQueryTree_Click(Object sender, EventArgs e)
bei System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
bei System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
bei System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
bei System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
bei System.Windows.Forms.Control.WndProc(Message& m)
bei System.Windows.Forms.ToolStrip.WndProc(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

tom-essen Themenstarter:in
1.815 Beiträge seit 2005
vor 12 Jahren

Hallo!

@mabo:
Danke für den Hinweis. Hatte nicht bedacht, dass man für count auch einen Parameter angeben kann.

Nobody is perfect. I'm sad, i'm not nobody 🙁

tom-essen Themenstarter:in
1.815 Beiträge seit 2005
vor 12 Jahren

Hallo!

Der Download im ersten Beitrag wurde aktualisiert:*COUNT wird nun korrekt unterstützt *Weniger Verzögerung beim Beenden (zumindest bei umfangreichen Settings)

Nobody is perfect. I'm sad, i'm not nobody 🙁

tom-essen Themenstarter:in
1.815 Beiträge seit 2005
vor 12 Jahren

Hallo!

Neue Version im ersten Beitrag.

Neu:*Experimentelle Unterstützung für Firebird-Datenbanken (lokale aktuell nur in 32 bit wegen der fb_embed.dll) *Behebung diverser kleiner Fehler (z.B. Umbruch in Protokoll-Anzeige, wenn Text länger als 250 Zeichen, Aktualisierung SQL-Parser, ...)

Nobody is perfect. I'm sad, i'm not nobody 🙁

tom-essen Themenstarter:in
1.815 Beiträge seit 2005
vor 12 Jahren

Hallo!

Im ersten Beitrag befindet sich eine neue Version des DBE zum Download.

Folgende Änderungen wurden vorgenommen:*Tabellen- und Spaltennamen lassen sich über das Kontextmenü in die Zwischenablage kopieren *Die Spaltenliste lässt sich über das Kontextmenü von "Columns" als text in die zwischenablage kopieren *Über "Tables" lassen sich alle leeren Tabellen ausblenden *Bei den Spalten wird nun (wenn möglich) angeziegt, ob diese zu einem Primärschlüssel gehören (vorangestelltes "(PK) ") *Invertierung des Ergebnisses über das neue Symbol in der Toolleiste ganz rechts (der rechtsgedrehte grüne Pfeil): Dadurch werden Zeilen und Spalten vertauscht *Kontextmenü in der ersten Zelle zwischen Zeilen- und Spaltenkopf *Erweitertes Kontextmenü der Ergebniszellen (s.u.) *Kein "Procedures"-Zweig mehr in der Baumansicht. Dieser wird erst wieder angezeigt, wenn ich die entsprechende Unterstützung implementiert habe, solange muss man den Umweg z.B. über Snippets nehmen. *Anzeige, welche Zelle "null" ist, also nicht einfach nur leer, sondern nicht gesetzt (durch ein kursiv dargestelltes "null") *Byte-Arrays werden nun in Hex-Schreibweise angezeigt (0x....) *In allen Datenquellen wird mittlerweile auch die Rückgabe zusätzlicher Informationen protokolliert (also z.B. Warnungen oder zusätzliche Fehlerinformationen, welche vom ADO.NET-Adapter kommen).

Hauptsächlich erweitert wurde das Kontextmenü der Ergebniszellen:*Zu referenzierten Spalten (also wo durch die geparste Anfrage eine eindeutige Rückverfolgung zur ursprünglichen Tabelle und Spalte möglich ist) ist nun eine Referenzierung zu anderen Tabellen möglich, ebenso wie eine Verwaltung der möglichen Werte zu Dokumentationszwecken *Textfeldinhalte können nun in einem Extra-Fenster (z.Zt. noch modal) als text, XML oder HTML angezeigt werden, wobei Text- und XML-Ansicht noch gleich sind (an einem ganz einfachen XML-Viewer arbeite ich gerade).

TODOs:
Da der Funktionsumfang mittlerweile doch recht groß geworden ist, bin ich aktuell auch dabei, eine Dokumentation zu schreiben.

Nobody is perfect. I'm sad, i'm not nobody 🙁

tom-essen Themenstarter:in
1.815 Beiträge seit 2005
vor 11 Jahren

Hallo!

Über den Link im ersten Beitrag gibt’s wieder eine neue Version, u.a. mit den folgenden Änderungen:*Verbesserter SQL-Parser *Verbesserter Ausdruck des SQL-Baums *Beseitgung einiger kleinerer Fehler

Nobody is perfect. I'm sad, i'm not nobody 🙁

tom-essen Themenstarter:in
1.815 Beiträge seit 2005
vor 11 Jahren

Hallo!

Wieder ist eine aktualisierte Version über den Link im 1. Beitrag verfügbar.

Geändert wurde diesmal folgendes:*Übersichtlicherer Einstellungsdialog durch Verwendung von Registerkarten *Verbesserter SQL-Parser *Ausdruck der Struktur einer Datenquelle (über Kontextmenü) als TreeView *Im- und Export der Daten und der Struktur einer Datenquelle (über Kontextmenü) *Kontextmenü Spalte im Ergebnis: Ändern des Datentyps *Kontextmenü Zeile: Ausdruck von markierten Zeilen (als Tabelle, als Schlüssel-Wert-Paarung, ...)

Nobody is perfect. I'm sad, i'm not nobody 🙁

tom-essen Themenstarter:in
1.815 Beiträge seit 2005
vor 11 Jahren

Hallo!

Wieder ist eine aktualisierte Version über den Link im 1. Beitrag verfügbar.

Geändert wurde diesmal u.a. folgendes:*Verbesserter SQL-Parser (u.a. INSERT, UPDATE und DELETE), dadurch u.a. auch Unterstützung von TOP und DISTINCT für csv, dBase und Excel *Durch Rechtsklick auf einen Identifier im SQL-Befehl wird nun versucht, die markierte Tabelle / Sicht / Spalte in der Baumansicht zu selektieren *Filterungsmöglichkeit des Ergebnisses über Kontextmenü einer Zelle *Allgemein erweiterte Einstellungen für Ausdruck (SQL-Befehl, Ergebnis) *Unterstützung von Indizees für ODBC, mySQL und MS SQL (Anzeige, Erstellen, Löschen) *Snippets werden nun wieder gespeichert, dieser Zweig wurde bisher aufgrund eines Serialisierungsfehlern immer ignoriert. *Der SQL-Befehlsbaum wird nun zusammengefasst angezeigt. Um die einzelnen Elemente anzuzeigen, einfach die STRG-Taste beim Klick gedrückt halten. Zudem kann man nun im Baum an einem beliebigen Knoten den Text des Knotens und der darunterliegenden Elemente mit einem Rechtsklick in die Zwischenablage kopieren. *Bei Abfragen und geänderten Snippets erscheint beim Schließen nun zunächst eine Sicherheitsabfrage, ob die Abfrage/Änderung verworfen werden soll. Mittelfristig sollen Abfragen dann auch z.B. als SQL-Datei gespeichert werden können. Der Mechanismus funktioniert aber beim Schließen des Programms noch nicht einwandfrei.

Insgesamt konnte ich die Geschwindigkeit allgemein etwas verbessern, habe zahlreiche kleine Fehler behoben und viele Verbesserungen bzw. neue Funktionen zur Be- und Verarbeitung des Ergebnisses hinzugefügt.

Ich wurde noch auf einen Fehler bzgl. SQLite hingewiesen: Dieser Adapter funktioniert aktuell wahrscheinlich nur mit Version 1.0.76.0. Wird noch geprüft.

Nobody is perfect. I'm sad, i'm not nobody 🙁

tom-essen Themenstarter:in
1.815 Beiträge seit 2005
vor 11 Jahren

Hallo,

habe gerade noch einen kleinen Fehler gefunden, welcher dazu führen kann, dass beim Speichern der Einstellungen der DBE abstürzt (was beim Bestatigen der Einstellungen und beim Beenden des DBE der Fall ist).

Dies ist in der neusten Version (Download über den 1. Beitrag) behoben worden.
Habe zudem die Fehlerprüfung diesbzgl. erweitert, um solche Fehler abzufangen und den Benutzer entsprechend zu informieren.

Nobody is perfect. I'm sad, i'm not nobody 🙁

tom-essen Themenstarter:in
1.815 Beiträge seit 2005
vor 11 Jahren

Hallo!

Bin gerade an einer Paradox-Unterstützung.
Hätte vllt. jemand die eine oder andere Paradox-Beispiel-DB, oder ein entsprechendes kleines Tool, mit welchem man solche selbst erstellen kann?

Hinweis von herbivore vor 11 Jahren

Wer weiterhelfen kann, möge sich bitte per PM bei tom-essen melden.

Nobody is perfect. I'm sad, i'm not nobody 🙁

S
322 Beiträge seit 2007
vor 11 Jahren

Hallo Tom,

dein Tool ist echt sehr nützlich wer mit Datenbanken arbeitet.

Ich muss mich nun in eine fremde (nicht dokumentierte) DB (MSSQL) einarbeiten und hier ist es sehr praktisch.

Mir ist ewas aufgefallen:

  • Wenn ich Tables über Rechtsklick "Alphabetisch Sortieren" wähle, dann werden die Tabellen schön sortiert.
  • Wenn ich nun diese Baumansicht drucken möchte ("Datenquellen-Struktur drucken"), verliert er die Reihenfolge, d.h. im Ausdruck sind diese nicht mehr alphabetisch sortiert.
    wäre cool wenn Du dass bei dem nächsten Update mitmachen könntest

Nach ein paar Testversuchen erhalte ich nun eine Exception beim Drucken der Datenquellen-Struktur:

System.ArgumentNullException: Der Wert darf nicht NULL sein.
Parametername: value
bei TD.Additional.UI.WinForms.Forms.GenericEditor.set_Data(Object value)
bei TD.Additional.UI.WinForms.Printing.DefaultPrintDocumentSettingsForm.set_AdditionalSettings(Object value)
bei TD.Additional.UI.WinForms.Printing.PrintGdiDocument.ShowSettingsForm(Object additionalSettings)
bei DatabaseExplorer.Controls.ResultViewPanel.GetPrintDocument(ILog log, DefaultPrintDocumentSettings settings, Object additionalSettings)
bei DatabaseExplorer.MainForm.<>c__DisplayClass3c.<printDataSourceStructure_Click>b__3a(Object s1, EventArgs e1)
bei System.Windows.Forms.Control.OnClick(EventArgs e)
bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
bei System.Windows.Forms.Control.WndProc(Message& m)
bei System.Windows.Forms.ButtonBase.WndProc(Message& m)
bei System.Windows.Forms.Button.WndProc(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Viele Grüße
Steffen

tom-essen Themenstarter:in
1.815 Beiträge seit 2005
vor 11 Jahren

Hallo!

@steffen_dec:
Habe das mit der alphabetischen Sortierung im Ausdruck nun berücksichtigt (beachtet werden die aktuellen Programmeinstellungen). Danke für den Hinweis, war mir nie aufgefallen.

Bzgl. der Fehlermeldung:
Kann zwar bestimmen, wo der Fehler bei dir auftritt, ihn aber weder erklären noch reproduzieren. Die Ausnahme an sich ist korrekt, aber eigentlich sollte der null-Wert aufgrund vorheriger Prüfungen garnicht so weit durchgereicht werden.
Kannst du das Problem noch reproduzieren, und wenn ja: Was hat du evtl. vorher gemacht?

EDIT:
@all:
Neue Version über den Link im ersten Beitrag erhältlich. Es wurden einige Fehler (u.a. der o.g.) behoben und teilweise Optimierungen vorgenommen. Neues ist diesmal nicht viel dazu gekommen:*XML-Anzeige für XML-Daten in Zellen (aufrufbar über Rechtsklick auf die Zelle)

Gruß

tom-essen

Hinweis von herbivore vor 11 Jahren

Bitte die Details des Fehlers per PM besprechen. Das Ergebnis kann natürlich wieder in diesen Thread einfließen.

Nobody is perfect. I'm sad, i'm not nobody 🙁

tom-essen Themenstarter:in
1.815 Beiträge seit 2005
vor 10 Jahren

Hallo!

Habe festgestellt, dass es beim Speichern der Einstellungen teilweise zu Problemen kommt, und somit u.a. die Snippets verloren gehen. Das habe ich mittlerweile mehrmals schmerzlich selbst erlebt, zum Glück geht das Wiederherstellen einigermaßen gut mit Hilfe der Protokolle. Aktuell prüfe ich detailliert, so die Ursache des Fehlers liegt.

Wenn also beim Beenden des DatabaseExplorer ein Fehler auftritt, bitte im Konfig-Verzeichnis (liegt unter %AppData%\Computopia GbR Essen\Database-Explorer) die appconfig mit der appconfig_backup vergleichen und ggf. verlorene Daten wiederherstellen.

Nobody is perfect. I'm sad, i'm not nobody 🙁

tom-essen Themenstarter:in
1.815 Beiträge seit 2005
vor 10 Jahren

Hallo,

der Link im ersten Beitrag verweist auf eine neue Version des DBE.
Ich habe einige Fehler beseitigt (u.a. den zuletzt genannten).
In den Verbindungseinstellungen für MS SQL ist nun auch direkt ein Verbindungstest möglich, neu ist die Datenquelle "MS SQL Server". Damit kann nun ein Server ohne Datenbank angegeben werden, welcher beim Aufklappen in der Baumansicht anne verfügbaren Datenbanken (je nach Rechten) anzeigt. Eine automatische Suche nach allen MS SQL-Servern ist nun über die Icon-Leiste möglich (die besten Ergebnisse erhält man, wenn man den DBE direkt auf einem MS-SQL-Server-Host ausführt).
Weiterhin funktioniert nun die Anzeige von Benutzern bei MSSQL-Datenbanken.

Die DatabaseExplorer.exe enthält nun zudem die meisten dll's, somit reicht die exe für die gängisten Datenbank-Systeme ausser Firebird (Rechte), SQLite (Rechte) und Oracle (Größe der dll's >100MB).

Nobody is perfect. I'm sad, i'm not nobody 🙁

tom-essen Themenstarter:in
1.815 Beiträge seit 2005
vor 8 Jahren

Hallo,

da ja bald der 5. Geburtstag des DBE ist (zumindest was den Threadstart angeht), wollte ich mal kurz informieren, dass die Entwicklung natürlich immer weiter gegangen ist.

Ich werde demnächst eine neue Version hochladen, welche dann zahlreiche Neuerungen mitbringen wird (u.a. SharePoint-Support über die Webservices, komplexe SQL-Abfragen auch für Nicht-SQL-Datenquellen, also z.B. CSV-Dateien, und viele kleine Anpassungen, Fehler-Korrekturen, ...).

EDIT: Zudem alles auf .NET 4 umgestellt.

Arbeitet jemand mit dem Microsoft Dynamics CRM? Hier könnte ich demnächst ein paar Tester brauchen (aktuell teste ich sowohl mit v4 und 2011 onPremise, langfristig sollen aber auch 2013 onpremis und online sowie CRM 365 unterstützt werden).

Nobody is perfect. I'm sad, i'm not nobody 🙁

148 Beiträge seit 2013
vor 8 Jahren

Ich arbeite täglich mit SharePoint und CRM. Würde mich also freuen helfen zu können!

Grüße

T
314 Beiträge seit 2013
vor 7 Jahren

Was ist aus dem demnächst geworden? 😃 Wir steigen demnächst auf Sharepoint 2016 um. Falls Du dafür Tester benötigst, kannst Du dich gerne bei mir melden.