Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Yase - Yet Another SQL Editor (https://www.delphipraxis.net/111043-yase-yet-another-sql-editor.html)

EugenB 28. Mär 2008 13:08


Yase - Yet Another SQL Editor
 
Liste der Anhänge anzeigen (Anzahl: 3)
Hallo Leute,

ich stelle euch mal kurz mein erstes richtiges Projekt vor.

Yase ist ein SQL-Editor. Mit dem Programm kann man Verbindungen verwalten. Verbindungen? Das Programm benutzt die ZeosLib das heißt man kann auf die wichtigsten DBMS zugreifen. Lediglich auf MS-Access kann es nicht zugreifen. Man kann SQL-Dateien laden und speichern. Man kann sofort mehrere Queries abschicken. Und hat eine Eingabemaske um neue Daten in einer Tabelle hinzuzufügen. Man kann die Tabellenstruktur bearbeiten, also Spalten hinzufügen/ändern/löschen sowie Primary Keys anlegen.

Durch ZeosLib unterstützte DBMS:
- ASA7*
- ASA8*
- ASA9*
- firebird-1.0*
- firebird-1.5*
- firebird-2.0*
- firebirdd-1.5*
- firebirdd-2.0*
- interbase-5*
- interbase-6*
- mssql*
- mysql
- mysql-4.1
- mysql-5
- mysqld-4.1*
- mysqld-5*
- oracle*
- oracle-9i*
- postgresql*
- postgresql-7*
- postgresql-8*
- sqlite
- sqlite-2.8
- sqlite-3
- sybase*

* Nicht getestet.

Für manche DBMS muss man noch separat die *.dll's runterladen und in Windows/system32 oder in den Programm-Ordner rein kopieren.

Version: 0.2.3
Programmiert in: Lazarus / FreePascal
Webseite mit History: http://www.eugen-bolz.de
Nicht getestet unter: Win2000/NT, Win98
Es werden 2 ini's im User-Config-Dir angelegt.

Ich hoffe das Programm gefällt euch. :-)

Bugs / Wünsche / Vorschläge / Rest hier im Thread reinschreiben.

Mit freundlichen Grüßen,
Eugen Bolz

Medium 28. Mär 2008 17:15

Re: Yase - Yet Another SQL Editor
 
Zitat:

Zitat von EugenB
Es wird nur eine .ini Datei im Programm-Ordner angelegt.

Ich erwarte sehnlichst Luckies Nervenzusammenbruch :angel:

EugenB 28. Mär 2008 19:26

Re: Yase - Yet Another SQL Editor
 
Zitat:

Zitat von Medium
Ich erwarte sehnlichst Luckies Nervenzusammenbruch :angel:

Die Verbindungen müssen ja schließlich irgendwo gespeichert werden oder ist eine .ini dafür falsch?

DeddyH 28. Mär 2008 19:30

Re: Yase - Yet Another SQL Editor
 
Nee, Ini ist schon OK, aber der Speicherort ist unglücklich gewählt. Spätestens unter "Standard"-Vista bekommst Du so Probleme, Du solltest daher das User-Profil nehmen.

mkinzler 28. Mär 2008 19:40

Re: Yase - Yet Another SQL Editor
 
Bei aktivierter Benutzerkontensteuerung (neudeutsch User Account Control) wird der Zugriff dann virtualisiert, was zu unerwarteten Nebenwirkungen führen kann

DeddyH 28. Mär 2008 19:42

Re: Yase - Yet Another SQL Editor
 
Ich dachte immer, das heißt User Access Control?

mkinzler 28. Mär 2008 19:44

Re: Yase - Yet Another SQL Editor
 
http://www.microsoft.com/germany/tec...cprot/uac.mspx

DeddyH 28. Mär 2008 19:47

Re: Yase - Yet Another SQL Editor
 
Danke :thumb:

jfheins 28. Mär 2008 20:51

Re: Yase - Yet Another SQL Editor
 
AAAlso ... ich hab mir da smal angeschaut, und ein paar Kritikpunkte gefunden - es ansonsten aber für gut befunden ;)

:arrow: Ich doppelklicke auf eine Tabelle ... nichts passiert ... wo sind die Daten? ... Achso, das Query ist da ... Mal Execute klicken und schauen, was passiert :stupid: :mrgreen:
:arrow: :arrow: Direkt ausführen ;)

:arrow: Ich doppelklicke was anderes und ... ups - das Query wird ja hinzugefügt ... wasn das?
:arrow: :arrow: Bei doppelklick memo clearen ;)

:arrow: Anzeige: die Tabelle sieht zwar nett aus, aber sie ist so zusammengequetscht! Sie passt sich nicht ihrem Inhalt an, obwohl Platz genug da ist ... was soll das denn? Wir sind doch nicht in JAVA!

:arrow: Man kann die Fehlermeldung nicht mit STRG-C kopieren (bitte implementieren), deshalb tippe ich sie ab:
Zitat:

SQL-Error: Lost conection to Server during query.
Press OK to ignore and risk Data corruption
Cancel to Kill Program
:shock:


:shock:


:shock:


Daten schrotten oder Selbstmord ??? Ist ja fast wie ein Bluescreen :stupid:
Wenn er die Verbindung verloren hat, soll er sie halt neu aufbauen - so schlimm isses glaube ich nicht ;)

:arrow: Es wäre schön, wenn man die sql-Tabelle direkt bearbeiten kann. Also auf jeden Fall die Daten (direkt in der Tabelle bitte und nen Button für ein Extra Fenster mit eigenem Editor für die Unterschiedlichen Datentypen - enum, Blob(Binar>Hex?), timestamp, int(evtl. mit php-Date in timestamp), usw.)
und schön wäre, wenn auch für die Tabelle selbst (Indizes, auto_increment, Spaltentypen, hinzufügen/entfernen etc.)

:arrow: Eine Query-History wäre dann vll. nett, weil man ja durch nen Doppelklick die Query leert ;)
(Aber bitte nicht nur ne popelige Combobox, wenn man länger Queries hat, wird das unübersichtlich)

Das insert ist ja auch etwas ... mager :stupid:

Alles in allem hat es zwar eine wirklich schicke Optik ( :thumb: ), aber es besteht Spielraum für Verbesserungen ;)

Bis dann,
Julius

P.S.: Zur Anregung kannst du dir ja mal die MySQL-Gui-Tools runterladen ;)
http://dev.mysql.com/downloads/gui-tools/5.0.html

EugenB 28. Mär 2008 21:21

Re: Yase - Yet Another SQL Editor
 
Na das sind mal gute Vorschläge^^, dann hab ich ja noch genug zum einbauen :)

Das mit der Fehlermeldung, soll ich dann die Fehlermeldung in einem Memo ausgeben lassen? dann könnte man es glaube ich per STRG+C kopieren, ne andere Möglichkeit kenne ich in Lazarus nicht^^

Das Programm ist ja dafür ausgelegt mehrere Queries abzuschicken und wenn ich jetzt immer wieder das Memo löschen würde wäre dann da meistens nur ein Query am stehen.

Die Tabelle bearbeiten wollte ich auch noch einbauen :) nur alles zu seiner zeit.

Bei der Ergebnis-Tabelle wollte ich nicht alle Ergebnisse durch gehen weil bei ca ne 1 Mio Einträgen würde das alles lange dauern^^, ich denke mal für die ersten 50 Einträge müsste es doch reichen oder?

Das insert war auch eben mal so hingeklatscht^^, später soll davon noch das update und delete gemacht werden. Was würde da noch fehlen?

Mit freundlichen Grüßen,
Eugen Bolz

jfheins 28. Mär 2008 21:27

Re: Yase - Yet Another SQL Editor
 
Zitat:

Zitat von EugenB
Na das sind mal gute Vorschläge^^, dann hab ich ja noch genug zum einbauen :)

Das mit der Fehlermeldung, soll ich dann die Fehlermeldung in einem Memo ausgeben lassen? dann könnte man es glaube ich per STRG+C kopieren, ne andere Möglichkeit kenne ich in Lazarus nicht^^

Einfach (wie übrigens auch showmessage und messagebox etc.) bei STRG-C die Meldung in die Zwischenablage reintun ;) Hast ja sowas wie OnKeyPress/Down in dem Formular ;)

Zitat:

Das Programm ist ja dafür ausgelegt mehrere Queries abzuschicken und wenn ich jetzt immer wieder das Memo löschen würde wäre dann da meistens nur ein Query am stehen.
Aber so muss ich immer die Queries von Hand löschen, wenn ich nicht am Ende 100 Ergebnisseiten haben will ... :(

Zitat:

Die Tabelle bearbeiten wollte ich auch noch einbauen :) nur alles zu seiner zeit.

Bei der Ergebnis-Tabelle wollte ich nicht alle Ergebnisse durch gehen weil bei ca ne 1 Mio Einträgen würde das alles lange dauern^^, ich denke mal für die ersten 50 Einträge müsste es doch reichen oder?
Joa, das sollte gehen ...

Zitat:

Das insert war auch eben mal so hingeklatscht^^, später soll davon noch das update und delete gemacht werden. Was würde da noch fehlen?

Mit freundlichen Grüßen,
Eugen Bolz
Guck dir z.B. phpmyadmin oder die Mysql-gui-Tools an. Die bieten, abhängig von der Tbellenstruktur, eine Entsprechende Eingabemaske für das einfügen ;) (Die kannst du dann ja evtl. auch für das Update verwenden ...)

EugenB 3. Apr 2008 21:50

Re: Yase - Yet Another SQL Editor
 
So neue Version ist drinne^^

Zitat:

Zitat von jfheins
Einfach (wie übrigens auch showmessage und messagebox etc.) bei STRG-C die Meldung in die Zwischenablage reintun ;) Hast ja sowas wie OnKeyPress/Down in dem Formular ;)

Wusste nicht wie ich das mit dem STRG+C hinbekomme, vllt ist das in der Delphi-Reihe sofort implementiert und in Lazarus/FreePascal nicht , aber egal habe einfach anstatt nem ShowMessage jetzt eine Form mit einem Memo genommen und jetzt kann man die Fehler kopieren

Ebenfalls wusste ich nicht wie man den User Ordner herbekommt, gibt es dafür ein Tutorial oder Codeschnipsel o.ä.?

Die Ergebnis Tabelle passt sich der Größe der Inhalte an.
Man kann die Daten einer Datenbank-Tabelle in einem Externen Grid bearbeiten.

Dann wurden noch so einpaar kleine Helferlein eingebaut (CodeComplination, Anzeige der Spalten/Keys).

Mit freundlichen Grüßen,
Eugen Bolz

EugenB 7. Mai 2008 13:23

Re: Yase - Yet Another SQL Editor
 
Soo,

die neue Version 0.2.3 ist draußen. Jetzt kann man die Tabellenstruktur bearbeiten. Die ini's werden jetzt unter den User-Ordnern gespeichert. Alle Spalten, Keys und Indices werden unter den Tabellen in der TreeView angezeigt. Die zuletzt geöffneten Dateien werden aufgelistet.

Leider hab ich immernoch nicht MS-Access einbinden, da ZEOS leider kein MS-Access unter Lazarus unterstütz und per ODBC ich entweder nicht auf MSysObjects zugreifen oder die PrimaryKeys nicht angezeigt werden können :'(.

Ich hoffe euch gefällt das kleine Tool und würde mich um Bugs/Wünsche freuen :).

DerAndereMicha 7. Mai 2008 15:20

Re: Yase - Yet Another SQL Editor
 
Hallo Eugen,

hab mir gerade Deinen Editor mal etwas näher angeschaut und ein paar Anmerkungen, sowie ein Problem im Zusammenspiel mit dem MS SQL-Server entdeckt.

Anmerkungen:

- Warum unterstützt Du bei der Verbindung nicht die Integrierte Sicherheit von WINDOWS, sondern nur die native SQL-Authentifizierung ?

- Die Anzeige aller Tabellen und Views einer Datenbank unter einem Knoten im DB-Objekttree ist sehr unübersichtlich. Wäre es nicht möglich die Views und die Tabellen getrennt anzuzeigen und evtl. auch die Systemobjekte von den Nutzerobjekten zu trennen?

Problem:

- Wenn ich auf eine Tabelle doppelclicke wird die SQL-Anweisung:

SQL-Code:
SELECT * FROM TABELLENNAME LIMIT 0,30;
erzeugt, was aber unter TSQL zwangsläufig zu einem Fehler führt.

Zitat:

Allgemeiner SQL Server-Fehler: Überprüfen Sie Meldungen vom Computer mit SQL Server.
Falsche Syntax in der Nähe von '0'.
in TSQL sollte es vielmehr:

SQL-Code:
SELECT TOP 30 * FROM TABELLENNAME;
heißen.

Gruß
Micha

EugenB 8. Mai 2008 12:15

Re: Yase - Yet Another SQL Editor
 
Hey Micha,

Zitat:

Zitat von DerAndereMicha
..
- Warum unterstützt Du bei der Verbindung nicht die Integrierte Sicherheit von WINDOWS, sondern nur die native SQL-Authentifizierung ?

Ich habe noch nicht mit dem MS-SQL-Server gearbeitet, aber kannste das mit der Integrierten Sicherheit erklären? Ich weiß grade nicht was du damit meinst. Den zum Verbinden nutzen ich ZeosLib und ich weiß nicht ob man dabei diese Integrierte Sicherheit verwenden kann.

Ich habe mir die MS-SQL-Server Express Edition installiert aber kp wie ich da eine Datenbank erstelle bzw irgendwas davon verwalten kann :-(

Zitat:

Zitat von DerAndereMicha
- Die Anzeige aller Tabellen und Views einer Datenbank unter einem Knoten im DB-Objekttree ist sehr unübersichtlich. Wäre es nicht möglich die Views und die Tabellen getrennt anzuzeigen und evtl. auch die Systemobjekte von den Nutzerobjekten zu trennen?

Hm stimmt so langsam wird das unübersichtlich ^^, wie wäre es so?

Code:
1. Tree für Verbindungen/Datenbanken
 - Typ der Verbindung ( Mysql, Mssql etc )
   - Verbindungsname
     - DB1
     - DB2 etc

2. Tree für Tabellen / Systemtabellen / Views etc
 - DBName (Verbindungsname)
   - Tabellen
     - Tabelle 1
       - Columns
       - Indices
       - Keys
   - Views
Diese Trees kann man dann per Tabs wechseln und dann müsste es ne gute Übersicht bringen :)

Zitat:

Zitat von DerAndereMicha
...
- Wenn ich auf eine Tabelle doppelclicke wird die SQL-Anweisung:

SQL-Code:
SELECT * FROM TABELLENNAME LIMIT 0,30;
erzeugt, was aber unter TSQL zwangsläufig zu einem Fehler führt.

...

SQL-Code:
SELECT TOP 30 * FROM TABELLENNAME;

Bisher habe ich nur den MySQL-Syntax verwendet, vielen dank für den Syntax in MSSQL beim Select

gibt es vllt eine Übersicht aller Befehle in den meistens DBMS's? also zb der Select befehl unter Mysql, mssql, sqlite, oracle etc

Oder vllt gibt es schon ne Klasse / Unit / Framework die Queries für jedes DBMS erstellen kann?

DerAndereMicha 9. Mai 2008 14:58

Re: Yase - Yet Another SQL Editor
 
Hallo Eugen,

bei der "Integrierten Sicherheit" wird statt eines nativen Benutzerkontos des SQL-Servers das WINDOWS-Benutzerkonto des aktuell angemeldeten Nutzers verwendet und man braucht keine zusätzliche Anmeldung am SQL-Server mehr. In wie weit das von den ZEOS-Komponenten unterstützt wird, kann ich Dir aber leider nicht sagen.

Zum Erstellen von Datenbanken beim MS SQL-Server kannst Du das SQL-Server Management Studio verwenden, welches in der
Microsoft SQL Server 2005 Express Edition with Advanced Services Service Pack 2 enthalten ist.

Gruß
Micha


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:33 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