Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Warning: mssql

Frage Entwicklung Datenbanken

Mitglied: ottscho

ottscho (Level 2) - Jetzt verbinden

15.09.2005, aktualisiert 20.09.2005, 11972 Aufrufe, 15 Kommentare

Hallo zusammen,
ich habe für testzwecke einen ms sql 2000 server. nun mache ich eine abfrage über php mit folgendem code:

[code]
$verbindung = mssql_connect("sqltestserver","sa","millch") or die
("Keine Verbindung moeglich");
mssql_select_db("ida_test_kunden") or die
("Die Datenbank existiert nicht");



$sql = 'SELECT * FROM kunden WHERE KDNR1 = 01279';
$ergebnis = mssql_query($sql);
while($row = mssql_fetch_object($ergebnis))
{
$kdnr1 = $row->KDNR1;
$name1 = $row->NAME1;
$name2 = $row->NAME2;
$strasse = $row->STRASSE;
$plz = $row->PLZ;
$ort = $row->ORT;
}
[/code]

leider bekomme ich eine fehlermeldung, aus welcher ich nicht schlau werde:

Warning: mssql_query() [function.mssql-query]: message: Unicode-Daten in einer Nur-Unicode-Sortierung oder ntext-Daten können nicht an Clients gesendet werden, die DB-Library (z.B. isql) oder ODBC, Version 3.7 oder früher, verwenden. (severity 16) in C:\xampp\htdocs\Auftrag\db_connect_test.php on line 10

kann mir bitte jmd weiterhelfen?

Gruß ottscho
Mitglied: 16640
16.09.2005 um 11:00 Uhr
Hol' Dir mal von Microsoft die aktuellen Data Access Components. Geh' dort ins Downloadcenter und suche nach MDAC_TYP. Installier das Package auf dem Client, von dem Du die Abfrage machst. Sollte danach funktionieren.
Bitte warten ..
Mitglied: ottscho
19.09.2005 um 08:17 Uhr
Danke für den Tipp.
Ich hab versucht es zu installieren. Aber es kommt die meldung:
MDAC 2.8 RTM ist mit dieser Version von Windows nicht kompatibel. Alle Funktionen sind zurzeit Teil von Windows.

was nun?
Bitte warten ..
Mitglied: 16640
19.09.2005 um 08:45 Uhr
Auf was für einem Windows wolltest Du das denn installieren?

Nebenbei: Dein SQL-Statement an sich funktioniert und liefert das von Dir erwartete Ergebnis? Hast Du es mal im Query Analyzer ausgeführt? Was hat das Feld KDNR1 für einen Datentyp? Hintergrund dieser Fragen: Du fragst da ein Feld KDNR1 auf einen numerischen Wert 01279 ab, wobei da die führende Null überhaupt keinen Sinn macht.

dba
Bitte warten ..
Mitglied: ottscho
19.09.2005 um 09:07 Uhr
das feld KDNR1 hat den datentyp NVARCHAR.
wenn ich die selectanweisung SELECT * FROM kunden WHERE KDNR1 = 01279;
im sql query mache, funktionert die abfrage ohne probleme. das problem liegt an der php 5.0.5 version. die hat probleme mit dem unicode. ich hab auch schon herausgefunden, dass die neue betaversion 5.1 eine erweiterng hat ( PDO (PHP Data Objects) - A new native database abstraction layer providing performance, ease-of-use, and flexibility.), aber es ist halt nur die beta version. aber was mache ich jetzt nur?
Bitte warten ..
Mitglied: 16640
19.09.2005 um 09:49 Uhr
Ändere mal den Abfragestring so ab, dass der Vergleichswert in einfachen Anführungszeichen steht. Außerdem setzt Du noch ein Unicode-kennzeichnung davor. Dein Stringinhalt muss also so aussehen:

SELECT * FROM kunden WHERE KDNR1 = N'01279'

Vielleicht hilft das in Deinem speziellen Fall weiter.
Bitte warten ..
Mitglied: ottscho
19.09.2005 um 10:23 Uhr
leider nicht! bekomme immer noch diese meldung:
Warning: mssql_query() [function.mssql-query]: message: Unicode-Daten in einer Nur-Unicode-Sortierung oder ntext-Daten können nicht an Clients gesendet werden, die DB-Library (z.B. isql) oder ODBC, Version 3.7 oder früher, verwenden. (severity 16) in C:\xampp\htdocs\Auftrag\db_connect_test.php on line 8

die abfrage hab ich nun so gemacht, wie du wolltest:

$sql = "SELECT * FROM kunden WHERE KDNR1 = N'$kdnr' ";

ich komme echt nicht mehr weiter ...
Bitte warten ..
Mitglied: 16640
19.09.2005 um 10:27 Uhr
Datentyp ändern - zumindest mal testweise - oder muss die Kundennummer zwingend unicodefähig sein? Kannst Du am einfachsten mit dem Enterprisemanager machen.

Mit allem, was Richtung PHP geht, bin ich nicht der richtige, das geht an meinem Gebiet weit vorbei.
Bitte warten ..
Mitglied: ottscho
19.09.2005 um 10:37 Uhr
naja, datentyp ändern ist fast ausgeschlossen.
es handelt sich wie gesagt um die db unseres warenwirschaftssystems. und da will ich den datentyp nicht ändern. aber ich danke dir herzlich für deine mühen.

kennst sich hier jmd mit php aus? bzw. mit der installation von php?
Bitte warten ..
Mitglied: 16640
19.09.2005 um 10:39 Uhr
Wenn man Daten nicht ändern kann, hilft es, eine View zu definieren und die Spalte dann mit einem convert zu füllen. Du läßt dann deine Scripte auf die View zugreifen und kannst so einen Workaround schaffen.
Bitte warten ..
Mitglied: ottscho
19.09.2005 um 12:56 Uhr
sry, hab kein wort verstanden *g*
hast du vllt ein beispiel?
Bitte warten ..
Mitglied: 16640
19.09.2005 um 13:28 Uhr
<font class=code>
create view v_test
as
select
feld1 as f1,
feld2 as f2,
convert(varchar(30), KDNR1) as f3
... weitere Felder
from Tabellenname
</font>
Danach hast Du dann eine View auf dem SQL-Server, auf die Du wie auf eine Tabelle zugreifen kannst. Du hast aber nun KDNR1 von einem Unicode-Feld in ein normales VARCHAR konvertiert.

Eine View verändert nichts an den originalen Tabellen, sonder ermöglicht lediglich eine andere Sicht auf die Daten. Man setzt das oft auch im Rechtemanagement ein. Ich kenne Unternehmen, bei denen es untersagt ist, direkt auf Tabellen zuzugreifen. In den Tabellen sind die Daten in kompletter ausbaustufe enthalten.

Beispiel: Personaldaten bestehen aus Adresse und Gehaltsinformationen. Es existieren nun unterschiedliche Views, nämlich welche, die sämtliche Daten beinhalten, aber auch andere, die die Gehaltsdaten gar nicht führen. Der normale Anwender bekommt nur die Berechtigung für die View, die keine Gehaltsdaten enthält. So kannst Du gewährleisten, dass niemand an die Gehaltsinformationen kommt, weil sie gar nicht in der View enthalten sind.

Soll als grobe Erklärung erstmal reichen. Auf jeden Fall müsstest Du damit Dein Problem so lange umschiffen können, bis Du ein Update erhalten hast.
Bitte warten ..
Mitglied: ottscho
19.09.2005 um 16:15 Uhr
danke, ich werde es morgen gleich testen und berichten wie es klappt.
doch gut, dass man sich hier im forum auf gute mithilfe andere verlassen kann.
*daumen hoch*

gruß ottscho
Bitte warten ..
Mitglied: ottscho
19.09.2005 um 16:57 Uhr
so, hab es nun ausprobiert und es futnkioniert einwandfrei. jetzt hab ich nur ne frage zur serverauslastung. dürfte groß kein unterscheid sein, oder?
Bitte warten ..
Mitglied: 16640
19.09.2005 um 21:11 Uhr
Nee, solange Du nicht in die Tiefe einsteigst und mit indizierten Views beginnst zu arbeiten, kannst Du das vernachlässigen.
Bitte warten ..
Mitglied: ottscho
20.09.2005 um 07:54 Uhr
alles klar. dann danke ich dir herzlich für deine mithilfe.
war echt klasse.

viele grüße aus dem schwarzwald
ottscho
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...