SQL Server

Aveţi probleme cu serverul Apache, cu interpretorul de PHP sau cu baza de date MySQL? Aici găsiţi informaţii despre servere free unde se poate instala forumul phpBB.
dorel
Nou venit
Mesaje: 4
Membru din: 23-Apr-2004, 22:01:20
Ext: Nu
Server: Windows
Nivel phpBB: Mediu
Nivel php: Mediu
Localitate: Genève

SQL Server

Mesaj 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.
Avatar utilizator
BuGsY
Fost coleg
Mesaje: 1193
Membru din: 19-Iun-2003, 15:24:49
Ext: Nu
Server: Windows
Nivel phpBB: Mediu
Nivel php: Mediu
Localitate: Constanţa
Contact:

Mesaj de BuGsY »

Intră în phpMyAdmin şi dă această comandă

Cod: Selectaţi tot

REPAIR TABLE phpbb_search_wordlist;
Nu ştiu cât te-ar putea ajuta, deoarece este vorba despre o bază de date SQL 2000 Server
dorel
Nou venit
Mesaje: 4
Membru din: 23-Apr-2004, 22:01:20
Ext: Nu
Server: Windows
Nivel phpBB: Mediu
Nivel php: Mediu
Localitate: Genève

Precizari

Mesaj de dorel »

BuGsY scrie:Intră în phpMyAdmin şi dă această comandă

Cod: Selectaţi tot

REPAIR TABLE phpbb_search_wordlist;
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
Avatar utilizator
mihaitza
Fost coleg
Mesaje: 1873
Membru din: 13-Ian-2003, 22:22:10
Versiune: 3.0.5
Ext: Nu
Server: Windows
Nivel phpBB: Experimentat
Localitate: Cluj-Napoca, România
Contact:

Mesaj de mihaitza »

Oricum, din câte ştiu eu, phpMyAdmin, funcţionează numai cu MySQL.
Avatar utilizator
bogdan
AdministratorAdministrator
Mesaje: 10888
Membru din: 18-Oct-2002, 13:14:27
Versiune: 3.0.11
Ext: Da
Server: UNIX/Linux
Nivel phpBB: Experimentat
Nivel php: Mediu
Localitate: Bucuresti
Contact:

Mesaj de bogdan »

in fisierul includes/functions_search.php inlocuieste codul:

Cod: Selectaţi tot

INSERT IGNORE
cu

Cod: Selectaţi tot

INSERT 
(valabil pentru Microsoft SQL Server si Microsoft Access) !
dorel
Nou venit
Mesaje: 4
Membru din: 23-Apr-2004, 22:01:20
Ext: Nu
Server: Windows
Nivel phpBB: Mediu
Nivel php: Mediu
Localitate: Genève

Mesaj de dorel »

bogdan scrie:in fisierul includes/functions_search.php inlocuieste codul:

Cod: Selectaţi tot

INSERT IGNORE
cu

Cod: Selectaţi tot

INSERT 
(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.
Avatar utilizator
bogdan
AdministratorAdministrator
Mesaje: 10888
Membru din: 18-Oct-2002, 13:14:27
Versiune: 3.0.11
Ext: Da
Server: UNIX/Linux
Nivel phpBB: Experimentat
Nivel php: Mediu
Localitate: Bucuresti
Contact:

Mesaj 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
Avatar utilizator
danielt
AdministratorAdministrator
Mesaje: 1176
Membru din: 18-Oct-2002, 13:02:29
Versiune: 3.0.5
Ext: Nu
Server: UNIX/Linux
Nivel phpBB: Mediu
Nivel php: Mediu
Localitate: Timişoara
Contact:

Mesaj 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.
Avatar utilizator
danielt
AdministratorAdministrator
Mesaje: 1176
Membru din: 18-Oct-2002, 13:02:29
Versiune: 3.0.5
Ext: Nu
Server: UNIX/Linux
Nivel phpBB: Mediu
Nivel php: Mediu
Localitate: Timişoara
Contact:

Mesaj 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.
Avatar utilizator
bogdan
AdministratorAdministrator
Mesaje: 10888
Membru din: 18-Oct-2002, 13:14:27
Versiune: 3.0.11
Ext: Da
Server: UNIX/Linux
Nivel phpBB: Experimentat
Nivel php: Mediu
Localitate: Bucuresti
Contact:

Mesaj 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 ?
Scrie răspuns

Înapoi la “Server”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 4 vizitatori