"Portable" Programm mit SQL Anywhere DB verbinden

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von Grinsnir.

    "Portable" Programm mit SQL Anywhere DB verbinden

    Ahoj zusammen,
    wie im Titel schon beschrieben, möchte ich eine kleine Portable Anwendung schreiben, welche sich, egal auf welchem Rechner innerhalb meines Netzwerkes ich sie starte, mit der SQL Anywhere Datenbank auf unserem Server verbindet, dort eine vorgeschriebene Anfrage ausführt, und mir das Ergebnis entsprechend ausgibt. Ich habe in den vorhandenen Threads, über die SuFu und bei "Tante Google" leider nichts gefunden was mir wirklich weiterhilft, und frage mich so langsam ob das überhaupt möglich ist. Der größte "Knackpunkt" scheint mir dabei zu sein, überhaupt eine Verbindung zu besagter DB herzustellen, da ich immer überall nur von MySQL, Access und Microsoft-SQL-Servern lese.
    Ich habe zugegebenermaßen nicht die größte Ahnung von Datenbanken, um nicht zu sagen quasi gar keine, aber es ist auch eine reine Lese-Anfrage, geschrieben werden soll dabei gar nichts. Die nötige Query hab ich mir schon erarbeitet und sie tut was sie soll, allerdings muss ich dafür aktuell auf dem Server "sitzen" und die SQL Anywhere Anwendung nutzen.

    Falls man eine solche Verbindung von "extern" des Servers nicht realisieren kann, hatte ich auch schon die Idee das ganze "Projekt" in zwei zu teilen - ein Programm, welches auf dem Server sitzt, die Query ausführt, und in eine Textdatei o.Ä. auf einem Netzwerkweit verfügbaren Netzlaufwerk schreibt, und eine welche eben auf dem "Enduser-PC" läuft und diese Textdatei abfragt, jedoch wäre mir eine "All-In-One-Lösung" lieber.
    Ich bin auch gerne bereit mir da entsprechendes Material anzulesen, nur ein Stoß in die "richtige Richtung" fehlt mir aktuell, da ich nicht mal wirklich weiß wo ich anfangen muss.

    Würde mich über Unterstützung an der Stelle freuen, wenn weitere Infos fehlen, stelle ich die natürlich auch gern bereit.

    PS: Sorry für die Wall-of-Text :S
    Willkommen im Forum.

    Hab zwar was bei stackoverflow ( :rolleyes: ) gefunden, aber selbst nicht probiert.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Danke für das willkommen!
    5 Minuten bis zur ersten Antwort, anderswo muss man für solchen Service viel Geld zahlen :D
    Ich werde mich in den Link gerade mal einlesen, habe aber direkt wieder eine "allgemeinere" Frage -> Sehe ich das richtig, dass ich dann auf jedem Client, von wo aus ich diese Verbindung herstellen will, einen entsprechenden Treiber (vorinstalliert) benötige?
    Das würde ich nämlich, sofern möglich, gern umgehen. Könnte man den ggf. beim Programmstart "mitliefern"?
    du könntest in visual studio versuchen, die benötigten komponenten und anwendungsdateien fest einzubinden, aber ich bezweifle, dass odbc-connectoren dort überhaupt auftauchen. ich denke, dass du die benötigten treiber überall installieren musst...

    du kannst mal über einen UDL-Test schauen, welche Treiber du überhaupt auf den Systemen hast, vielleicht reichen die installierten Treiber ja schon?

    einfach eine neue datei mit der endung "udl" anlegen, eigenschaften anzeigen und dann schauen, welche treiber vorhanden sind...
    Guten Abend zusammen,

    Ich bin jetzt immerhin schonmal so weit, dass ich eine Verbindung zum Server in meinen Datenquellen hab.
    Habe mir dafür den SQL Anywhere Client von SAP geladen, Installiert, das bringt mir den Treiber mit, und den kann ich dann im "Hinzufüge-Dialog" für Datenquellen auch auswählen.

    Folgeproblem:
    Wenn ich dann über den Designer gehe (also Rechtsklick auf die Datenquelle -> DataSet mit Designer bearbeiten) kann ich da auch meine Query rein packen, und sie gibt mir auch genau das aus was ich will.
    Wie ich es jetzt allerdings schaffe, mir das Ergebnis dieser Query nicht nur in eben diesem Designer, sondern auch im laufenden Programm, in der Form, anzeigen zu lassen, daran hakt's gerade noch ein wenig.

    Ist zwar nicht mehr "ganz" das Threadthema, würde mich trotzdem über jede Hilfe freuen :)
    Guten Morgen!
    Habe das jetzt mal so ausprobiert wie von ErfinderDesRades beschrieben, habe allerdings ein kleines Problem.
    Das zeigt mir ja jetzt ALLES in der Tabelle an.
    Meine Query zieht sich aber Daten aus 3 verschiedenen Tabellen (bzw. Ansichten), Mit JOIN, WHERE, AND, also direkt komplett durchgefiltert.
    Das hab ich jetzt mittels "Rüberziehen" und im Code anpassen nicht realisiert bekommen.
    Weiss auch nicht ob das so möglich ist, habe mich da vorher vielleicht etwas schwammig ausgedrückt, sorry :/
    bei SqlServer kann man nicht nur DBTabellen ins Dataset ziehen, sondern auch StoredProcedures - k.A., ob das bei SqlAnyway auch geht.
    Und dann zieht man eben eine SP aus den Datenquellen aufs Form.
    Wie gesagt: zuvor muss sie dem Dataset zugefügt sein.

    Nachteil des Verfahrens ist: So reingezogene mixed-queries kann man nicht zurückspeichern, sondern da muss man nochmal neu ziemlich herumhampeln.
    Daher rate ich i.A. davon ab, mit StoredProcedures, oder auch mit mixed-queries überhaupt zu arbeiten.

    Das Mix-In der Spalten kann man auch im Datagridview machen, nachdem man die betreffenden Tabellen fein getrennt befüllt hat. Und dann kann der TableAdapter Änderungen auch zurückspeichern, ohne jeden weiteren Aufwand.
    Das Gebastel der Mix-In-Spalten hat übrigens garnix mit der Datenbank zu tun, das ist ja eine Sache zw. DGV und Dataset.
    Das hat ziemlich viele Möglichkeiten - gugge mal hier: vier Views-Videos
    Hallo und sorry erstmal für die doch etwas späte Rückmeldung, ich war im Urlaub.
    Die Videos werde ich mir heute Nachmittag/Abend mal anschauen, bis dahin kurze Problemfrage (Sorry, falls die durch die Videos schon beantwortet wird).
    In meinen "Datenquellen" sehe ich die von mir müßig hinzugefügte Datenquelle, und die dann ausgewählten, für mich relevanten, drei Ansichten. Wenn ich da jetzt Rechtsklick mache, bekomme ich die Option "DataSet mit Designer bearbeiten", wo ich meine Abfrage "zusammenbasteln" kann. Die erscheint danach aber nicht in den Datenquellen, lässt sich also nicht "rüberziehen". Ich weiss nicht ob ich da was falsch mache oder einfach was übersehe.

    Wie gesagt, nachher schau ich mir erstmal die Videos an, danach probier ich mein Glück und melde mich noch mal!

    Grinsnir schrieb:

    In meinen "Datenquellen" sehe ich die von mir müßig hinzugefügte Datenquelle


    Es gibt ein Datenquellen-Fenster - daraus kann man Dinge aufs Form ziehen.
    Davon redete ich aber nicht.
    Sondern ich rede vom Server-Explorer. Daraus kannst du Dinge aufs Dataset ziehen.
    Diese Dinge musst du halt finden und identifizieren:
    1. Server-Explorer
    2. Dataset-Designer
    3. DatenquellFenster
    In den Vids siehst du wie gesagt nur DatasetDesigner und Datenquell-Fenster - der Server-Explorer kommt da nicht vor.
    Bitte nicht mit Kontextmenü irgendwas an den Dataset-Tabellen herumbasteln.
    Das wird in den Vids zwar gezeigt, hat aber nur Sinn, wenn man keine Datenbank im Hintergrund zu berücksichtigen hat.
    Hallo zusammen,
    ich habe es jetzt tatsächlich ganz anders gelöst.
    Meine Endlösung arbeitet jetzt mit OleDbConnection mit Connectionstring und OleDbCommand mit meiner Query anstelle von Datasets, und hat mir auch bereits das Ergebnis geliefert das ich brauche.
    Ich danke trotzdem vielmals für die Lösungsvorschläge, gerade die Videos vom ErfinderDesRades haben mir zwar hier nicht geholfen, aber kommen mir sicherlich zugute wenn ich nochmals mit DBs arbeiten muss.