Pagina 1 din 2
SQL Server
Scris: 23-Apr-2004, 23:59:18
de dorel
Urgent am nevoie de ajutor. Am instalat phpbb2.08a pe un server IIS cu o baza de date SQL 2000 Server (un hebergeur din Geneva) si totul e ok pana cand am introdus un text mai lung in diferite limbi(engleza, franceza, spaniola) si am descoperit ca la introducerea (de exemplu) a cuvantului "general" in engleza sau "qué" in spaniola nu se mai conecteaza la baza de date pentru a inreegistra cuvantul in tabela search_wordlist si am aceasta eroare:
Could not insert new word
DEBUG MODE
SQL Error : 23000 [Microsoft][ODBC SQL Server Driver][SQL Server]Duplicate key was ignored.
INSERT INTO phpbb_search_wordlist (word_text, word_common) SELECT 'contribution', 0 UNION ALL SELECT 'general', 0
Line : 234
File : C:\..\forum\includes\functions_search.php
Daca cineva ma poate ajuta cu o opinie sau in cel mai bun caz cu ideea fatala raman vesnic recunoscator. Trebuie urgent ca acest forum sa mearga ceas in mai multe limbi.
Multumesc in avans.
Scris: 24-Apr-2004, 02:18:49
de BuGsY
Intră în
phpMyAdmin şi dă această comandă
Nu ştiu cât te-ar putea ajuta, deoarece este vorba despre o bază de date SQL 2000 Server
Precizari
Scris: 24-Apr-2004, 10:28:16
de dorel
BuGsY scrie:Intră în
phpMyAdmin şi dă această comandă
Nu ştiu cât te-ar putea ajuta, deoarece este vorba despre o bază de date SQL 2000 Server
Multumesc pentru raspuns. Din pacate nu am acces la baza de date, iar din discutiile cu cei ce administreaza serverele windows a rezultat din partea lor fireste ca ar putea fi o greseala din phpbb. Ma indoiesc pentru ca merge foarte bine cu Mysql si Apache si nu vad de ce nu ar merge cu aceasta baza de date. Introducerea unor anumite cuvinte (general, qué, préférences, ...) provoaca neconectarea la baza de date cand trebuie sa fie inregistrate in tabela search_wordlist. Ideea este de a sti ce sa le solicit celor ce administreaza bazele de date privitor la ce setari nu sunt potrivite.
Pe curind
Scris: 24-Apr-2004, 11:20:11
de mihaitza
Oricum, din câte ştiu eu, phpMyAdmin, funcţionează numai cu MySQL.
Scris: 24-Apr-2004, 11:43:42
de bogdan
in fisierul
includes/functions_search.php inlocuieste codul:
cu
(valabil pentru Microsoft SQL Server si Microsoft Access) !
Scris: 24-Apr-2004, 16:09:25
de dorel
bogdan scrie:in fisierul
includes/functions_search.php inlocuieste codul:
cu
(valabil pentru Microsoft SQL Server si Microsoft Access) !
Salut,
Multumesc pentru ca mi-ai raspuns. Am verificat dar codul e corect in fichier:
Ma gandesc ca e ceva cu baza lor de date ( niste setari pe care nu le stiu)
pentru ca mai am o limitare si la lungimea textului care poate fi introdus in
mesaje. Deci pe alte baze de date (pe Mysql de exemplu) nu am aceste probleme.
Si nu am gasit o regula generala pentru anumite caractere ci doar o combinatie
care luat ca un cuvant si in incercarea de a il inregistra in tabela
searc_wordlist ne se mai conecteaza la baza de date. Chestia e ca nu am idee ce
sa le cer celor care administreaza serverul si baza de date Sql Server privitor
fie la typul campului unde se inregistreaza cuvintele fie ce semnificatie pot
avea.
Nu cumva ai o alta idee?
In orice caz, multumesc pentru ca ai incercat sa ma ajuti.
Scris: 26-Apr-2004, 08:14:52
de bogdan
incearca sa recreezi baza de date (sau o baza noua unde sa importi toate tabelele) de pe MS 2000 Server avand activata optiunea accent sensitive
Scris: 26-Apr-2004, 09:09:27
de danielt
Pare a fi o eroare datorată unor cuvinte rezervate. Întrebă dacă acele cuvinte sunt rezervate.
Din păcate nu am experienţă pe MS SQL, dar am să mă interesez.
Scris: 26-Apr-2004, 09:34:47
de danielt
Nu sunt 100% sigur, dar se poate să fie o problema de cod de caractere. Este posibil ca qué să fie interpretat de baza de date la fel ca şi que şi de aici să apara duplicarea cuvintelor. După cum se obs. din eroare problema nu apare la nivelul php-ului ci la nivelul bazei de date.
Din câte mai ţin eu minte există un cod de caractere pe baza de date ceva de genul Latin1. Cred că va trebui să pui acel tip de caractere. Transmite-i administratorului serverul acest lucru şi intreaba-l ce poţi face.
S-ar putea să trebuiască şi să refaci baza de date.
Scris: 26-Apr-2004, 09:58:09
de bogdan
verifica ce tip de "collation" e setat pentru baza de date (acesta sa fie setat pe
Latin1_General_CI_AS).
fa-ti o copie la baza de date (schimba-i numele) si apoi sterge baza veche, creaza o baza noua cu acelasi nume ca baza veche specificand la tipul
collation type valoarea
Latin1_General_CI_AS si apoi ruleaza
/db/schema/mssql_schema.sql pentru noua baza de date.
Apoi refa-ti toate tabelele din BD salvata in noua BD folosind SQL Server DTS (Data Transformation Services).
PS. citeste si articolul
How to perform case sensitive searches in SQL Server ?