Laden...
Avatar #avatar-2140.png
tom-essen myCSharp.de - Experte
Entwickler & Consultant NRW Dabei seit 15.05.2005 1.820 Beiträge
Benutzerbeschreibung
Interessen: CAPI, TAPI, TWAIN, Win32, Client/Server, Komponenten-Entwicklung, SharePoint, Azure, Cloud-Dienste. Hardware: Ständig wechselnd 😉

Forenbeiträge von tom-essen Ingesamt 1.820 Beiträge

17.10.2013 - 15:12 Uhr

Hallo,

ist es denn ein eindeutig schwarzer Rand oder eher ein sehr dunkles grau mit wechselnden Werten, und ist der Übergang zum eigentlichen Dia gut erkennbar (dann könnte man für die Erkennung des Randes mit einfachen Grenzwerten rechnen)?

Und was meinst du mit gradlinig: Das einfach der Rand gerade angetrennt wird oder das Bild auch geradegestellt wird?

Das Stichwort für die Entfernung des Randes ist "Freistellen"

05.09.2013 - 12:19 Uhr

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).

30.08.2013 - 11:55 Uhr

Hallo,

alternativ einen LEFT OUTER JOIN verwenden und alle Zeilen ausfiltern, wo keine Verknüpfung gefunden wurde:

SELECT * FROM tabelle1
LETT OUTER JOIN tabelle2 on tabelle2.Spalte=tabelle1.Spalte
WHERE tabelle2.Spalte is null

Wichtig ist in jedem Fall ein Index auf der Vergleichsspalte in der großen Tabelle.

29.08.2013 - 08:14 Uhr

Hallo,

unter http://www.prad.de/guide/vergleich_auswahl.html kann man auch die Daten verschiedener Monitore recht gut vergleichen.

28.08.2013 - 08:39 Uhr

Hallo,

man sollte aber auch überlegen, kurze "Sanduhr-Perioden" (z.B. unter einer Sekunde) auszufiltern, da diese wohl kaum den Arbeitsablauf verhindern.

Ist aber auch nur eine Anregung.

27.08.2013 - 15:45 Uhr

Hallo,

ohne den Text groß durchgelesen zu haben, gibts auch noch (mindestens) eine andere Möglichkeit. Und zwar gibt es für .NET eine Software-Komponente, welche in eigene Programme eingebunden werden kann (für Privatanwender auch kostenfrei).

Und - siehe da - ist schon mal im Forum besprochen worden.

Link: Kontoumsätze in einem .net Programm auswerten

23.08.2013 - 07:52 Uhr

Hallo,

nur zur Sicherheit mal die Frage, ob im Dialog evtl. die Buttons als Accept- oder Cancel-Buttons definiert sind (also wie chilic schon vermutete über Events)?

Ich würde dann vermuten, dass sich der Dialog auch schließt, selbst wenn man die DialogResult-Zuweisungen auskommentiert

19.07.2013 - 11:07 Uhr

Hallo,

auch von mir alles Gute zum Geburtstag und vielen Dank an das Team und die Community für die vielen Hilfen und die tollen Diskussionen, die ja im Gegensatz zu vielen anderen Foren hier praktisch immer sachlich verlaufen.

EDIT: Bei mir passt der Hut super drauf !!! 👍

18.07.2013 - 09:05 Uhr

Hallo,

es gibt hier im Forum bereits ein ähnliches Projekt, welches eine zusätzliche Taskleiste für einen 2. Monitor bereit stellt. Evtl. kannst du dir da noch ein paar Anregungen bzw. Umsetzungen holen.

03.07.2013 - 10:39 Uhr

Hallo!

@telfa:
Die Property hat er doch schon, er möchte nun, dass beim Verwenden des Controls im Designer wie beim DGV eine Aufgabe zum Anbinden an eine DataSource verfügbar ist.

@awomsi:
Schau dir mal im Reflektor den Code des DGV an, evtl. wird dafür auch ein Attribut verwendet.

28.06.2013 - 18:08 Uhr

Hallo!

Ich habe ein großes Repository, wo es hauptordner gibt für libs (Bibliotheken), Projects, multimedia (Bilder, Grafiken, ...), playground (Für Testprojekte, die dann später im Idealfall in "Projects" verschoben werden können) und vendor (für Fremdbibliotheken).

Dadurch müssen in den VS-Projektdateien nur noch relative Pfade gespeichert werden.
Will man nun ein Projekt an einen Kunden / externen Partner übergeben, muss man nur noch die entsprechenden Ordner rauskopieren, es läuft dann an jedem anderem Ordner.

24.06.2013 - 13:08 Uhr

Hallo,

habe gerade noch einen anderen Vorteil entdeckt:
Wenn man die jeweiligen Inhalte für diesen Bereich als einzelne Controls "anbietet" (also dann auch ganz im Sinne von WPF), hat man für spätere Szenarien eine bessere Kontrolle, diese Inhalte rel. schnell in anderen Controls (Forms, tabPages, ...) zu verwenden.

edit: Ergänzung, um die Aussage etwas klarer zu machen.
Wenn man z.B. eine Liste mit zentralen Controls verwaltet, oder einen InjectionContainer, oder einfach nur zentrale Methoden, welche einem ein für einen bestimmten zweck geeignetes Control zurückgeben (z.B. Eingabe der Zugangsdaten für eine SQL-verbindung), dann kann man hier relativ schnell umschalten zwischen modalen Dialogen oder dem von herbivore vorgeschlagenen Weg, da in beiden Fällen einfach nur die zentrale Methode, Liste, ... abgerufen und das Control eingebunden werden muss.

19.06.2013 - 11:32 Uhr

Hallo,

wenn man ganz ehrgeizig ist, könnte man sowas ja mal selbst initiieren. Ist natürlich erstmal nur ein Tropfen auf dem heissen Stein, aber es könnte ja was draus werden.

So eine Webseite braucht ja erstmal wenig Inhalt: Suchmaske und Anzeige der Ergebnisse.
Viel wichtiger wird sein, an die Daten ranzukommen. Und dazu wird man ein Programm anbieten müssen, was sich jeder schnell von der Homepage runterladen und loakl laufen lassen kann, um die eigene hardware und installierten treiber zu analysieren und die Ergebnisse (z.B. über einen WebService) in die Datenbank zu schieben.

18.06.2013 - 16:21 Uhr

Hallo,

hier noch eine alternative Möglichkeit (mit dem Nachteil, dass aktuell nur text ausgegeben werden kann):

Benutze aus dem Database-Explorer die folgenden Assemblies:*TD.Additional.dll *TD.Additional.UI.dll *TD.Additional.UI.WinForms.dll *Windows.API

EDIT (25.12.14): Da die dll's mittlerweile im DatabaseExplorer gemergt sind, habe ich diese hier separat angehängt.

Die entsprechenden usings lauten


using TD.Additional.UI.WinForms;
using TD.Additional.UI.WinForms.Printing;

Folgende Hilfsroutinen werden benötigt:


internal static PrintGdiDocument GetPrintDocument()
{
    PrintGdiDocument printDocument = new PrintGdiDocument();
    printDocument.DocumentSettings.PrintHeader = false;
    printDocument.DocumentSettings.PrintFooter = true;
    printDocument.DocumentSettings.FooterFont = new Font("Arial", 10.0f, FontStyle.Regular);
    printDocument.DocumentSettings.FooterCenter = "";
    printDocument.DocumentSettings.FooterRight = "Seite {page} von {pages}";
    printDocument.DocumentSettings.FooterLine = true;
    printDocument.DocumentSettings.PageName = "A4";
    if (printDocument.ShowSettingsForm())
	return printDocument;
    return null;
}

private void PrintListView(PrintGdiDocument printDocument, ListView listView)
{
    if (printDocument != null && listView != null)
    {
	var area = new PrintGdiDocumentTable()
	{
	    CaptionFont = new Font("Verdana", 12, FontStyle.Bold),
	    AlternateLineBackground = true,
	    MultiColumn = false,
	    SingleColumn = true,
	    AutoArrangeColumns = true,
	    HorizontalTableLines = false,
	    VerticalTableLines = false,
	    PrintTableHeader = true,
	};
	foreach (ColumnHeader columnHeader in listView.Columns)
	{
	    var align = TableColumnAlign.Left;
	    switch (columnHeader.TextAlign)
	    {
		case HorizontalAlignment.Center:
		    align = TableColumnAlign.Center;
		    break;
		case HorizontalAlignment.Left:
		    align = TableColumnAlign.Left;
		    break;
		case HorizontalAlignment.Right:
		    align = TableColumnAlign.Right;
		    break;
	    }
	    area.Columns.Add(new PrintColumn(columnHeader.Text, 0, align, true));// Mit 0 wird die Breite automatisch berechnet, ansonsten Angabe in Milimetern
	}
	var values = new List<string>();
	foreach (ListViewItem lvi in listView.Items)
	{
	    foreach (ListViewItem.ListViewSubItem subItem in lvi.SubItems)
		values.Add(subItem.Text);
	    area.AddLine(values.ToArray());
	    values.Clear();
	}
	printDocument.AddArea(area);
    }
}

Der eigentliche Ausdruck erfolgt dann mit


var printDocument = GetPrintDocument();
PrintListView(printDocument, hier die Referenz zur eigenen ListView);// Die Methode kann auch öfter aufgerufen werden, falls man mehrere ListViews ausdrucken möchte
printDocument.PrintPreview();

Sieht dann wie gesagt nicht ganz so schön aus, aber erfüllt seinen Zweck.

24.05.2013 - 10:20 Uhr

Hallo,

zunächst einmal willkommen im Forum.

Bitte beachte zukünftig [Hinweis] Wie poste ich richtig? 1.1, 1.1.1

Zu deiner Frage:*Die Fehlerursache wurde dir genannt, mit dem Debugger kannst du feststellen, welcher Teil null ist. *Suche auch mal nach System.Reflection.Assembly.GetExecutingAssembly() und AppDomain.CurrentDomain

23.05.2013 - 15:58 Uhr

Hallo,

dann wird dir wahrscheinlich nichts anderes übrig bleiben, als die Zeilen komplett selbst einzulesen, d.h. Byte für Byte lesen, bis das von dir erwartete Zeichen kommt.

06.05.2013 - 09:28 Uhr

Hallo,

mit den Global Hooks kann man auch Tastendrücke unterbinden.
Da die Ereignisse von einem registrierten Handler zum nächsten durchgereicht werden, kann man diese Kette einfach unterbrechen, indem man bestimmte Ereignisse nicht weiterleitet.
Allerdings sollte man dann einer der letzten in der Kette sein, da diese beim zuletzt registrierten Handler startet.

Und beim Testen sollte man per Default eine Timer einbauen, welcher nach einer bestimmten Zeit den Handler wieder abmeldet, sonst hat man bei einem Fehler kaum noch Kontrolle über das System (nur noch mit der Maus).

02.05.2013 - 14:09 Uhr

Hallo Ironaya,

Wilfried hat dich doch bereits auf eine Quelle für den Zugriff auf MS Office-Dokumente hingewiesen.

Diese Bibliotheken können auf doc- und docx zugreifen, Beispiele findest du in der Doku der Bibliothek.

Da ich die Library ja nicht selber geschrieben habe würde ich die Datei dann einfach per editor(?) öffnen und schauen welche Funktion ich nehmen muss / kann.

Dieses Vorgehen vergiss mal ganz schnell. Das ist evtl. später interessant, wenn du wissen willst, wie eine Funktion arbeitet. Aber zum einen bestehen die Bibliotheken aus mehreren einzelnen Quellcode-Dateien, und insgesamt dürfte es sich hier um mehrere 1.000 Zeilen Quellcode handeln., da findest du so schnell nicht das passende.

Bzgl. PDF's suche mal bei Google nach PdfSharp. Die kann man u.a. PDF's einlesen, weiteres findest du auch hier in der Doku zu dem Paket.

nun eine Aufgabe zugelost bekommen, die mich mehr oder weniger überfordert

Das wird später im Job nicht anders sein, da muss man sich reinarbeiten.
Das Auslesen der Daten ist mit den o.g. Paketen gut lösbar, das spätere Anzeigen und wegschreiben wird dann das kleinere Übel sein.

Lass dich nicht direkt entmutigen und teste die vorgeschlagenen Pakete anhand der in der jeweiligen Doku vorgegebenen Beispiele einzeln aus, dann wird das schon funktionieren.

28.04.2013 - 19:19 Uhr

Hallo!

Ich hatte letztens dasselbe Problem, und habe zumindest für einen bestimmten Fall eine Lösung:
Wenn man genau weis, wieviele Zeilen man noch Platz hat, erstellt man eine neue Liste, verschiebt die Tabelle in diese Liste und erstellt dann für die Liste eine Gruppierung mit folgendem Ausdruck

=iif(RowNumber(Nothing)<=39,1,2)

Die 39 ist in diesem Fall die Anzahl der Zeichen. Bei der Gruppierung muss dann aber auch noch "Insert Page break after" aktiviert sein.

19.04.2013 - 14:08 Uhr

Hallo,

für eine Antwort wäre zunächst mal interessant, wie du die Daten abrufst und intern speicherst, idealerweise mit etwas Code.

17.04.2013 - 13:05 Uhr

Hallo Gogeta,

wow, dass sich nach so einer langen Zeit mal wieder jemand für dieses Programm interessiert 😄, danke für dein Interesse und das Lob.

Bin aktuell fast ausschließlich mit dem Database-Explorer beschäftigt, aber evtl. kann man das kombinieren.

Den Kontakt-Manager würde ich mittlerweile eher komplett neu schreiben, da ich in den letzten 4 Jahren doch noch das eine oder andere dazugelernt habe.

Aber Wünsche, Kritik, Anregungen, etc. kannst du natürlich gerne (in diesem Post) vorbringen.

16.04.2013 - 12:46 Uhr

Hallo!

Es gibt auf CodePlex und/oder CodeProject diverse Projekte, welche den Zugriff auf Office-Dokumente vor Version 2007 ermöglichen, da muss man sich dann das beste raussuchen.

Ab Office 2007 gibt es das OpenXML-Format, welches man sogar mit den .NET3.5-Bordmitteln öffnen kann, allerdings muss man sich dann mit der jeweiligen Struktur auskennen.

11.04.2013 - 15:04 Uhr

Hallo!

Seit ca. 1. jahr habe ich HardStyle für mich entdeckt (und das nicht nur wegen der Vorschaubilder in Youtube 😉)

08.04.2013 - 17:34 Uhr

Hallo!

Schau dir mal die Klasse XmlDocument an, sowie die dazu passenden Beispiele.

XML-Dokumente kann man im Code genauso durchlaufen, wie Sie aufgebaut sind, allerdings muss man dafür schon die .NET-Klassen kennen, und das zählen wir zu den Grundlagen (siehe auch [Hinweis] Wie poste ich richtig?, 1.1.1)

08.04.2013 - 09:45 Uhr

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.

08.04.2013 - 08:59 Uhr

Hallo!

Dafür gibt es die SQL-Notifications.
Schau dir mal SqlDependency an

08.04.2013 - 07:36 Uhr

Hallo Eike,

willst du nur das JavaScript aufrufen, oder soll das JavaScript auch die C#-Variablen füllen?
Ersteres wird ja im o.g. Link von Troubadix erklärt, zweiteres ist so erstmal nicht möglich. Entweder kannst du das JavaScript so aufrufen, dass es ein Array mit den benötigten Daten zurück gibt, oder du musst die Werte im JavaScript an einer Stelle im HTML-Dokument einbetten und anschließend mit C# über das DOM abfragen.

22.03.2013 - 13:46 Uhr

Hallo!

Schau dir man den Database-Explorer an, der kann auch DBF-Dateien ohne zusätzliche Treiber öffnen.

In einem der oberen Beiträge ist auch ein Beispiel, wie man die Abfrage in eigenen Programmen verwenden kann.

19.03.2013 - 14:41 Uhr

Hallo,

Wie meinst du denn kopieren?

Eine 1:1-Kopie des eingelesenen DataSet erstellen (z.B. einfach ein zweites mal einlesen).

Ansonsten einfach das vorhandene DataSet bearbeiten:*Zuerst alle neuen Spalten erstellen und die Inhalte bereitstellen *Vorhandene Spalten wenn notwendig anpassen *Nicht mehr benötigte Spalten löschen

19.03.2013 - 13:35 Uhr

Hallo!

Wenn du tatsächlich das ursprüngliche DataSet noch im Speicher benötigst, wirst du vermutlich nicht umherkommen, dass DataSet erstmal komplett zu kopieren und dann zu bearbeiten.

Geht es denn nur um die Anzeige? Denn dann kann man alles im DataGridView einstellen, ohne die DataTable zu ändern.

05.03.2013 - 07:19 Uhr

Hallo egamer,

zum einen hier im Forum und speziell in den einschlägigen Code-Foren (CodePlex, CodeProject) gibt es zahlreiche fertige Komponenten, um Mails zu erstellen, zu versenden, abzurufen und zu parsen.

Wie das Ganze über TCP läuft, ist zum Üben sicherlich OK, in allen anderen Fällen sollten aber die .NET-Klassen oder fertige Klassen aus den o.g. Quellen ausreichen.

20.02.2013 - 07:54 Uhr

Hallo!

Gibt doch im Forum genug Snippets bzgl. Global Hotkeys.
Diese bindest du einfach in dein Programm ein und beim Druck auf einen Button richtest du dann den HotKey ein.

11.02.2013 - 11:17 Uhr

Hallo!

Auf CodeProject und CodePlex gibt es mehrere PDF-Reader. Da musst dann allerdings immer noch prüfen, in welchem Objekt-Typ die Tabelle verwaltet wird, dass sollte aber im Debugger rel. einfach nachvollziehbar sein.

06.02.2013 - 14:29 Uhr

Hallo!

Eher offtopic
In der c't war letztens Passwort-Sicherheit das Thema. Was sich da bei den Passwort-Hackern alles getan hat, ist schon erstaunlich. Das Hauptproblem dabei ist, wenn das verwendete Passwort in deren Wörterbuch vorkommt (und diese Listen umfassen bei den Profis wohl mehrere 100.000 Einträge). Ein kompletter Test dauert dann wenige Sekunden für einfach MD5-Hashes. Dann werden diverse Algorithmen durchlaufen, wo dann Wort-Kombinationen, Leed-Speach, ... variiert werden.

Wichtig dabei ist wohl insgesamt, wie die Passwörter gespeichert werden. Nun muss KeePass ja so speichern, dass die Daten wieder herstellbar sind, d.h. zumindest das Master-Passwort sollte mehrfach gesalzen sein.

03.02.2013 - 03:01 Uhr

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

01.02.2013 - 15:31 Uhr

Hallo,

OK, es klingt erstmal wie "aufgeben". Aber eigentlich sollte es rel. problemlos möglich sein, die Access-DB in eine andere DB zu kopieren und die Webseite entsprechend anzupassen.

Ich hoffe aber auch, dass die Seite schnell wieder kommt. Denn sonst könnten schnell andere auf die Idee kommen, sowas nachzubauen und dann müsste alles wieder neu angegeben werden.

15.01.2013 - 08:31 Uhr

Hallo!

Alternativ könnte man auch prüfen, wo das Programm liegt und dann entscheiden, wo die Config gespeichert werden soll.

08.01.2013 - 12:23 Uhr

Hallo!

Wie schon weiter oben geschrieben lohnt sich das wirklich nur, wenn es für die zukünftige Stelle erforderlich oder gewünscht ist, ansonsten ist hier die 10jährige Berufserfahrung bei vielen mehr wert.

Nicht zu verachten ist dabei auch der Zeitaufwand, Freizeit bleibt da kaum noch. Besonders gegen Ende, wenn die Abschlussarbeit fertig werden soll.

08.01.2013 - 07:48 Uhr

Hallo Templarthelast,

es sieht so aus, als wenn du die geänderte Datei als neues Element dem Ordner hinzufügst. Versuche mal, die Datei im Item zu aktualisieren dann sollte die Änderung auch übernommen werden.

07.01.2013 - 09:20 Uhr

Hallo MitoG,

D.h. du willst eine der tabellen in der ComboBox auswählen, und nach der Auswahl sol der Inhalt dieser ausgewählten tabelle ium DGV angezeigt werden?

Das wäre erst mal kein Problem. Wenn die Tabelle allerdings sehr groß ist, kann es zum einen etwas dauern mit dem Einlesen und im Worst Case gibt's eine Memory-Exception.

Du könntest zuerst die Anzahl der Zeilen und Spalten abfragen, und dann anhand bestimmter Schwellenwerte entscheiden, ob die Tabelle ganz, teilweise oder garnicht eingelesen werden soll. Und der Nutzer sollte entsprechend informiert werden.

Oder man fängt einfach mit dem zeilenweisen einlesen im Hintergrund an, und überprüft regelmäßig den Speicher.

17.12.2012 - 11:20 Uhr

hallo,

alternativ bzw. zusätzlich kann man auch die Daten von OpenStreetMap auswerten. Entweder per WebService oder Download der XML-Daten.

11.12.2012 - 12:20 Uhr

Hallo roYaL-TS,

als Ergänzung zum Beitrag von deerhunter sein noch erwähnt, dass jemand aus diesem Forum ein komplettes Framework zur Erstellung von OpenXML-Dateien geschrieben hat: NetOffice - Ein versionsunabhängiger Wrapper für MS-Office

30.11.2012 - 10:20 Uhr

Hallo!

Auch interessant wäre, ob du externe Komponeten (z.B. von CodeProject) verwendest oder schon mal getestet hast.

Und wenn du den Text der E-Mail hast, dann sollte der Rest doch kein Prblem mehr sein (am einfachsten ist da die String-Contains-Methods, weitere wurden oben genannt)

29.11.2012 - 14:08 Uhr

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?

29.11.2012 - 07:12 Uhr

Hallo!

Klingt insgesamt nach einem interessanten Projekt. Ist das auf bestimmte Handy-Modelle beschränkt, oder erfolgt die Steuerung über Webseiten?

27.11.2012 - 08:59 Uhr

Hallo!

Für Benachrichtigungen ist das Stichwort "Notifications". MS SQL bietet dass, ich weis nur aktuell nicht, ob auch bei SQL Express. Ansonsten ginge noch Firebird, die unterstützt dass ebenfalls.

Ansonsten könntest du es über Trigger versuchen, die sind in den meisten Datenbanken supported. Speziell für mySQL wäre hier dieser Hinweis interessant: MySQL 5.1 Reference Manual

EDIT: Oder man schreib sich einen DataLayer, welcher alle DB-Änderungen vornimmt und einen zusätzlichen Mechanismus zur Benchrichtigung anderer Clients enthält (wobei dann allerdings eine zweite Server-Anwendung herhalten müsste).

27.11.2012 - 08:40 Uhr

Hallo,

evtl. kann man auch eine View erstellen, welche ein Ranking in einer zusätzlichen Spalte berechnet. Wenn die View bestimmte Voraussetzungen erfüllt, kann man auch hier Indizees setzen. Primär benötigt man einen eindeutigen Index, danach kann man beliebig weitere erstellen, z.B. auf die Ranking-Spalte.

26.11.2012 - 15:04 Uhr

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.

26.11.2012 - 14:55 Uhr

Hallo,

also von dem Ausfall habe ich nichts mitbekommen, aber die Geschwindigkeit ist für mein Empfinden erheblich gesteigert worden.

Super.

25.11.2012 - 12:08 Uhr

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.