Auf SQL Datenbank zugreifen - SQL Management Studio

  • Guten Tag,


    ich hoffe hier kann mir jemand helfen, denn ich bin jetzt schon den ganzen Tag durch so viele Threads gegangen, habe eigene in anderen Foren aufgemacht und immer kam nur ein stumpfer Link ohne Kommentar, der aber nicht viel mit meinem Problem zu tun hatte.


    Nun zu meiner Problemstellung:
    Ich versuche aktuell, einige Infos, sei es zb. ein Login-System hinzubekommen..
    Es läuft auf meinem PC eine Testdatenbank, bzw. eher ein Test SQL-Server.


    Ich bin eigentlich .NET Entwickler und muss nun zwingendermaßen auf Android erweitern..
    Via des .NET Frameworks bekomme ich die Verbindung kinderleicht hin, dass kann ich aus dem Kopf schreiben, mit Android ist das allerdings eine Qual, ich explodier hier gleich wirklich.


    So viele Codes haben mir nicht weitergeholfen darunter:
    - php Script zum auslesen (da klappt die Verbindung nicht)
    - mit nem Framework aus Android (da bekomme ich nur einen leeren String zurück, das Beispiel poste ich gleich unten)
    - andere Frameworks..
    - etc.


    Ich bete wirklich das Ihr hier meine letzte Rettung seid!!


    Um nochmal auf das System einzugehen:
    - Ich habe einen MSSQL Server bei mir laufen (Zugriff funktioniert auf allen IPs und sogar von außen.. via .NET)
    - Ich arbeite daran via SQL Server Management Studio 2012 (Design & befüllen von Testdaten)
    - Ich habe Windows 7 64 bit..


    Hier mal eins der zig ausprobierten Beispiele:


    Please help :(..


    Ps: Andere Tutorials die ich gefunden habe, waren wohl immer mit lokalen DBs, im Assets Ordner oder so, aber damit kann ich nicht viel anfangen!

  • Also eigentlich sieht das doch schon ganz gut aus.
    (Ich sehe mal davon ab darauf hinzuweisen, dass direkte Zugriffe auf SQL Datenbanken über ein mobiles Gerät ein hohes Sicherheitsrisiko sind und vermieden gehören – deshalb die ganzen Tipps mit PHP und Co. Es hat seine Gründe.)


    Zunächst einmal finde ich es arg befremdlich, dass Du in einer Schleife alle Ergebnisse des Sets abgreifst und damit ein und denselben String immer und immer wieder überschreibst. Eventuell erwischt Du tatsächlich als letzten Datensatz den, der keinen Wert im Feld stehen hat und deshalb ist Dein String leer.
    Ebenso wahrscheinlich ist es, dass Du bei Index 1 gar nicht den Wert hast, den Du erwartest. Es ist guter Stil im Query nur anzugeben, welche Werte man wirklich auslesen möchte. Also beispielsweise 'SELECT _id, category, title FROM fragen'. Damit legst Du auch gleich die Reihenfolge im ResultSet fest und kannst Dich darauf verlassen, dass an Index 1 die Kategorie steht.


    Ich an Deiner Stelle würde mit einem Breakpoint vor der Schleife eben diese einmal durchgehen und mir auch die Inhalte des ResultSet einmal ansehen.

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

  • Hmmm okay.. Ich hatte den Schnipsel auch irgendwo aufgegriffen von oben und nur soweit angepasst, ich sehe das mit der While Schleife wo der GetString ggf. die alten Daten überschreibt auch ein, müsste ich gleich mal schauen, aber vielen vielen Dank schonmal für die ausführliche Antwort :)!!


    Ja das Problem wäre soweit halt, dass ich dann meine komplette Windows Anwendung umbauen müsste, denn dem php Script ist es wohl scheinbar nicht möglich, die Daten aus meiner Datenbank hier auf meinem PC zu holen.


    Also über PHP die Daten aus der Online Datenbank des Hosters via "localhost" zu holen (weil da das Script liegt) geht, dass habe ich gestern als ich bis 3 Uhr dran saß hinbekommen.


    Allerdings möchte das Script nicht die Daten aus meiner Datenbank hier am Rechner holen. Dann würde ich halt nur die Zugriffsmethode der Android App ändern, aber die Win App könnte bleiben wie sie ist.


    Ich hoffe das war einigermaßen verständlich^^

  • Also ich habs nicht so ganz verstanden. :)


    Ist die Datenbank jetzt lokal auf Deinem Rechner und wird auch immer lokal auf einem Rechner in einem autarken Netzwerk sein? Dann nimm den Ansatz mit der JDBC.


    Ist die Datenbank global im Internet erreichbar, solltest Du eine Abstraktionsschicht dazwischen setzen. Beispielsweise eine PHP Seite oder, solltest Du Dich dort eher zu Hause fühlen, eine ASP Seite. Irgendwas, das aus einer klaren, simplen und unmissverständlichen Anforderung (beispielsweise ?action=get&category=user&id=3) die ganzen Queries zusammenbaut und das Ergebnis aufbereitet zurückliefert.


    Es muss halt niemand wissen, wie Username und Kennwort des Datenbankbenutzers sind, wie die Datenbank und die Tabellen heißen und welche Felder da drin sind. ;)

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

  • Hey, die DB befindet sich bei mir auf dem Rechner.


    Die Win App greift darauf bereits zu, von überall.. Also keine Zugangsprobleme.


    Jetzt wollte ich halt noch die Mobile Version davon machen und das dann mit Android, da ich seit 3 Tagen nun mein Note 3 habe :)..


    Also werde ich gleich nochmal die JDBC Variante austesten.


    Als diese nicht ging, hatte ich es dann via PHP an meine DB probiert also lokal über XAMPP zu meiner Rechner DB.
    Anschließend vom Hoster/Webspace über PHP zu meiner DB..


    Ich hoffe die JDBC Variante bekomme ich hin.. Melde mich gleich nochmal!


    Klappt der oben gezeigte Weg überhaupt mit nem Microsoft SQL Server mssql?


    Fakt ist ja, dass meine SQL Datenbank ne MSSQL DB ist und scheinbar auf Port 1433 lauscht, der Treiber versucht anscheinend auf Port 3306 zuzugreifen, wenn ich diesen Port korrigiere bekomme ich ne NetSocketException.

  • Du hast den falschen Treiber. Du benutzt MySQL und solltest einen MSSQL Treiber nehmen. Wie damit dann der String aussieht kann ich dir leider nicht sagen. Ich kennen nur noch db2 ;)


    Edit: hier mal eine kleine Hilfe ;) http://stackoverflow.com/quest…ql-server-jdbc-connection

    MfG,
    Christopher


    Eine gewisses Maß an Freundlichkeit kann man auch von Menschen im Internet erwarten.
    Das Forum basiert komplett auf der Freiwilligkeit ihrer Nutzer und diese sollen sich wohlfühlen! Daher seid bitte freundlich. Danke

  • Manmanman, so viele Gleichgesinnte hier^^..


    Der eine mag Detektiv Conan, der andere Disturbed :D..


    Naja BTT:
    Ich habs jetzt endlich hinbekommen mit dem Import folgender jar Datei: jtds-1.3.0


    Dann muss man natürlich eine AsyncTask benutzen, da man sonst einen User Interface Fehler bekommt.


    Vielen Dank für die Hilfe :)!


    PS: Da ich den PHP-Webservice nicht mit dem MSSQL zum Laufen bekommen haben, habe ich jetzt auf MySQL gewechselt, da geht das ja super easy mit und in Kombination mit JSON ist es nice :D!

  • Der eine mag Detektiv Conan, der andere Disturbed :D


    Ich seh schon, ich bin ein Außenseiter.
    Immerhin weiß ich jetzt, wie es kommt, dass besagter Herr einen Evil Ernie (ähnlichen) Avatar hat ohne Evil Ernie überhaupt zu kennen.
    Danke für die Aufklärung. :)

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!