ASP und MySql
Shail
- asp.net
Hi,
ich habe gerade MySQL auf meinem Rechner installiert.
Da ich über eine ASP-Datei auf die Tabellen unter
MySql zugreifen soll, muss ich ja erst eine Verbindung
dazu herstellen. Ich weiss aber nich t wie.
Bei SQL sieht es z.B. so aus:
SET conn = Server.CreateObject("ADODB.Connection")
conn.open "UID=sa;PWD=;DSN=Test"
Conn.Execute("Select * from Tabelle1")
Kann mir bitte jemand sagen, wie es bei MySql aussieht?
Danke im Voraus
Sohail
Hi,
Hallo
ich mag/kann kein asp aber es hat einer so eine ähnliche Frage schonmal heute gestellt, jurz unter dir: [pref:t=39818&m=218138]
Gruß Christoph
sorry für mein Deutsch...
Gruß Christoph
http://forum.de.selfhtml.org/faq/#Q-10
Warum, zum Teufel, sollte ich für Dich die Antwort aller fünf Minuten wiederholen?
*Knurr*
fastix
Hi fastix,
da hast du auch keine richtige Antwort am Lager gehabt. Vielleicht deswegen musst du die Antwort alle fünf Minuten wiederholen. :-=
Sohail
Hi fastix,
Sohail!!!
Vielleicht steht es Dir erstmal an die genannte Antwort und an den genannten Stellen (Links)zu aufmerksam zu lesen.
Vieleicht steht es Dir aber auch an, zu beschreiben, was an der Antwort falsch sei.
Bis dahin betrachte ich Deine Äußerung als "Pubs".
fastix
Sohail!!!
Speziell für Dich gibts unten gleich Bilder!
Guten Moregen erstmal,
1. ich glaube, du musst erstmal die Frage richtig lesen und dann beantworten.
2. die Frage war, wie man das ganze unter ASP hinbekommt und nicht warum man nicht das mit PHP versucht!! Wie das ganze unter PHP funktioniret was ich bereits.
Sohail
Guten Moregen erstmal,
Ja, guten Morgen!
Dort steht beschrieben, wie Du zunächst den ODBC Treiber für MySQL einrichtest.
-> Hast Du das getan?
Ok. Dann weiter:
Dim strDriver
strDriver = "DRIVER=MySQL;"
#Schau bitte genau in der Dokumentation nach, wie der ODBC- Treiberhier genannt werden muss. Unter:
http://www.mysql.com/products/myodbc/manual.html#Connection_parameters
findest Du Hinweise, die zwar (nach einem ersten Überblick) nicht für ASP sind, aber die einzelnen Punkte sind nachvollziehbar. Und dem ODBC ist es egal, welche Sprache verwendet wird: es erwartet immer die gleichen Angaben beim gleichen Verbindungstyp (hier MySQL).
Dim strServer
strServer = "SERVER=localhost;Host=%;"
#Das wird wohl stimmen.
Dim strUsername
strUsername = "UID = username;"
#Das auch
Dim strPassword
strPassword = "PWD = passwort;"
#Das auch
Dim strDatabase
strDatabase = "DATABASE=C:\mysql\data\mysql;"
#Das mit Sicherheit nicht. Du musst nicht den Pfad zum Programm, sondern die verwendete MySQL- Datenbank angeben. Spätestens darauf hättest Du kommen können, wenn Du den Treiber und eine System- DSN einrichtest.
strDatabase = "DATABASE=DeinDatenbankName;"
#DeinDatenbankname meint das, was Du am MySQL- Prompt mit
"use _database_" aufrufst.
Deswegen ja auch:
Fehlertyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Driver Manager] Der Datenquellenname wurde nicht gefunden, und es wurde kein Standardtreiber angegeben
Schon allein aus dieser Fehlermeldung heraus muss ich erstmal klarstellen, ob der ODBC- Treiber überhaupt eingerichtet ist.
Abgesehen, davon, dass Microsoft- Fehlermeldungen _oft_ falsch sind führt diese doch auf den richtigen Pfad. Das schreibt Dir jemand, der "keine" Ahnung von %ASP% hat, weil er dessen Verwendung als "nicht sinnvoll" ablehnt. Ich reisse mir also den Arsch auf um zu helfen und denke mich in eine Programmiersprache hinein. Da wäre sachlichere Antwort besser gewesen.
Etwa so: "Ich habe folgendes getan: ODBC- Treiber eingerichtet. Geht noch nicht. Folgende Fehlermermeldung: "plapla". Wie kann mir weiter geholfen werden?"
Einen neuen Thread zu eröffnen oder pampig zu reagieren bringt dann nichts. (siehe FAQ des Forums) http://forum.de.selfhtml.org/faq/#Q-06
http://forum.de.selfhtml.org/faq/#Q-11
Noch was zur Sache:
Wenn Du nicht gerade ein Installationsskript schreibst(meine Vermutung), ist es nicht sinnvoll bei Datenbankzugriffen jedesmal den Zugriff neu einzurichten. Ich vermute, das Einrichten einer System- DSN und das Benutzen derselben ist wesentlich performanter. Stell Dir immer vor, Du hättest hunderte (oder mehr) Zugriffe pro Minute... Und meine Erfahrungen mit Perl::ODBC sind bezüglich der Performance eher bescheiden. ODBC ist ein geländegängiger Rollstuhl, kein Rennwagen. Deswegen (und weil es gerade für ASP'ler einfacher umzustellen ist) habe ich Dir vorgeschlagen, bei Zusammenarbeit mit MySQL PHP zu nutzen. Ich kann daran nichts unsinniges sehen.
fastix
Hallo,
ich glaube das ganze Problem liegt an meiner ODBC-Verbindung.
Ich habe zwar die MyODBC-3.51.06.exe-Datei installiert und die
kann ich auch unter ODBC-Treibern Sehen, aber beim Öffnen von
"WinMySQLAdmin 1.4" bekomme ich die Meldung "MyODBC Not found".
Ich kann auch keine neue ODBC zu meiner neu angelegten Datenbank
erstellen.
Habe ich die falsche Version von MyODBC?
Danke
Sohail
Hallo,
Habe ich die falsche Version von MyODBC?
Nein.
ich gehe mal davon aus, daß Du es installiert hast. :)
Ok.
Hast Du unten mal die bebilderte Anleitung zum Anlegen einer System-DSN befolgt?
Vorher(!) muss aber eine Datenbank, optimal eine Datentabelle und ein Datensatz exitieren. Die kannst Du leicht am Prompt anlegen.
Wenn Du den Server nicht erreichst: anders als bei Access muss der Datenbankserver als Dienst laufen.
Tut er das? Ja. Ok. Nein: Starte mal den mysqld-nt.exe, und dann gehe in Start-> -> Systensteuerung -> Verwaltung -> Dienste und stelle sicher, dass der Dienst gestartet ist und das dies künftig automatisch erfolgt.
Du weisst sicher, dass Du den Port 3306 schließen musst (Firwewall) oder dem Mysql- Server nur für das Nachbarnetz erlauben darfst (Personal Firwalls). Sonst kann praktisch jeder... Ich vermute, Dein Passwort ist noch leer.
----------------------------------------------------------------------
C:\windows> cd \mysql\bin
C:\mysql\bin> mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 12 to server version: 4.0.3-beta-nt
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> create database test;
Query OK, 1 row affected (0.01 sec)
mysql> use test;
Database changed
mysql> CREATE TABLE xtest
(nr
BIGINT NOT NULL ,name
TEXT NOT NULL ,vname
TEXT NOT NULL);
Query OK, 1 row affected (0.01 sec)
mysql> INSERT INTO test values(1,"Meier","Hans")
Query OK, 1 row affected (0.01 sec)
mysql> exit
bye
----------------------------------------------------------------------
Dann gibt es eine Datenbank "test" mit der tabelle "xtest", die Spalten nr(GroßeGanzzahl), name(Text), vname(Text) und eine Datenzeile enthält.
Ok. Merk Dir den Datenbankname(test), den Tabellename(xtest) und befolge die bebilderte Anleitung :) unten.
ich meine die:
[pref:t=39818&m=218338]
Eins noch:
Ich weiss ja nicht, was Du als User und Passwort eingibts. Aber ich weiss, dass doert nicht die Anmeldedaten von Windows reingehören. MySQL hat eine eigene User- und Rechteverwaltung. Folglich mußt Du, wenn Du da noch nichts dran getan hast Benutzer und Passwort einfach leer lassen.
Ich hoffe, das hilft Dir weiter.
fastix
Hai,
danke für deine Bemühungen.
Unter dieser Adresse ?t=39818&m=218338 bekomme ich eine Fehlermeldung.
Ich neben MYSql auch die MySQL-Front_2.5_Setup.exe installiert. Das ist sozusagen eine Datenbankverwalter für MySQL und hat eine Oberfläche wie MSSQL. Da kann ich direke einen Datenstz reinschreiben.
Bei kir ist der Dienst(MySql) gestartet und auf Automatisch gestellt.
Ich bekomme aber immernoch die gleiche fehlermeldung und die MyODBC wird nicht gefunden. Ich glaube nicht, dass das etwas mit einstellungen zutun hat. Vielleicht übersehe ich etwas. Ich habe MyODBC nochmal installiert. Ich bekomme aber nichts raus.
Danke nochals
Sohail
Hai,
Fisch :)
Poste noch mal Dein Skript.
fastix
Und schau auch mal hier nach:
http://forum.de.selfhtml.org/archiv/2003/2/38622/#m211503
Da wurde das Problem wohl schon mal iergendwie gelöst.
/Tip: wenn das alles nicht hilft nimm mal die Suchfunktion und gib einfach ASP und MYSQL ein... Durchsuche dann auch das Archiv.
fastix
Hallo,
es hast sich erledigt. Die Antwort von Axel hat mich geholfen.
Ich habe nämlich den gleichen Fehler gemacht und zwar, bei mir
heisst auch die der mySQL Treiber {MySQL ODBC 3.51 Driver} und
nicht MyODBC.
Ich habe aber jetzt ein anderes Problem. Wenn ich eine ODBC-Konfiguration
kann ich ja auch eine UserID und ein Passwort eingeben. Wenn ich
aber das mache und dann Test Data Source klicke bekomme ich eine
Fehlermeldung:
[MySql][ODBC 3.51 Driver] Access denied for user: 'sohail@localhost'(using Password:Yes)
Kannst du damit was anfangen.
Danke
Sohail
Hallo,
[MySql][ODBC 3.51 Driver] Access denied for user: 'sohail@localhost'(using Password:Yes)
Ja, das stand wohl auch letztendlich so in einer FAQ's, auf die ich verwiesen habe.
Kannst du damit was anfangen.
Ja. MySQL hat eine eigene Userverwaltung. Diese liegt in den der Datenbank mysql.
Wenn Du also einen Benutzer angeben willst, so musst Du diesen erst mal anlegen und ihm auch ein Passwort zuweisen.
Das ist auch sehr zu empfehlen, das sonst jeder weltweit auf Deine Datenbanken über den Port 3306 zugreifen kann... Alternative: Sperrung des Ports durch eine Firwall.
Wie die Benutzervervaltung von MySQL funktioniert ist nicht mit 3 Zeilen beschrieben. Am besten Du schaust in die MySQL-Tutorials oder besorgst Dir ein Buch. (z.B. "mysql in 21 tagen")
Ich hab das übrigens was gefunden:
http://www.online-tutorial.de/cgi-bin/tutorials.pl?Select=Tutorials&Rubrik=MySql&x=109&y=2
fastix
Hallo,
danke. Ich habe zwei DateTime Felder in meiner Tabelle.
Wie kann ich in MySQL diese Felder automatisch füllen.
Bei SQL reicht es mit Now(). Bei MySQL bekomme ich nur
Null raus. Ich habe es auch mit Date() versucht, da habe
ich dieses unsinnige Datum 2008-03-20 03:00:00 heraus bekommen.
Hast du eine Idee?
Sohail
Hallo,
da habe ich dieses unsinnige Datum 2008-03-20 03:00:00 heraus bekommen.
Hast du eine Idee?
(1) Dies ist eine ISO gerechte Datums/Uhrzeitangabe: 20. März 2008
(2) Datum/Uhrzeit in MySQL immer so eintragen. Es kann damit rechnen:
http://www.rent-a-database.de/mysql/mysql-166.html
Bitte lesen...
fastix
Hallo,
2008-03-20 03:00:00
Datum und Uhrzeit auf dem Rechner mal richtig einstellen könnte auch helfen
:)
fastix