[ cgippc @ 03.10.2005. 13:45 ] @
Pozdrav svima
U pitanju je CGI aplikacija, interesuje me sledeće: kako pročitati ili upisati naša slova u MS Access ili SQL server bazu?

probao sam sa CDatabase i CRecordset ali se slova ne prikazuju na web stranici.

Kod za čitanje izgleda otprilike ovako, podaci su uneti u bazu preko Enterprise managera, u ENT.manageru se vide naša slova. polje je NVARCHAR.

CDatabase DB;
CRecordset RS(&DB);
db.openEx("DSN=SQLSERVER");
rs.open("select * from tabela");

CStringW DB_TEXT;

while ( !rs.isEOF){
rs.GetFieldValue(0,DB_TEXT);
_tprintf(DB_TEXT);
}

[ X Files @ 03.10.2005. 15:44 ] @
Kod kontrola koje nisu UNICODE postoji brdo problema sa latiničnim oznakama.

Probaj na primer ovako:

OTVORI APLET: Control Panel / Regional and Language Options

a) KARTICA: Languages
-----------------------

TASTER: Details...
TASTER: Add...
PADAJUĆA LISTA: Dodaj tvoju matičnu latiničnu tastaturu, ako već
nije bila u spisku, dakle:

"Serbian (Latin)" ili
"Slovenian" ili
"Croatian" ili
"Bosnian (Latin, Bosnia and Herzegovina)" ili
"Serbian (Latin, Bosnia and Herzegovina)" ili
"Croatian (Bosnia and Herzegovina)".

b) KARTICA: Advanced (OVO JE NAJVAŽNIJE !!!)
----------------------------------------------

PADAJUĆA LISTA: Izaberi tvoju matičnu kodnu stranu, dakle:

(IZABERI BILO KOJU LATINIČNU)

"Serbian (Latin)" ili
"Slovenian" ili
"Croatian" ili
"Bosnian (Latin, Bosnia and Herzegovina)" ili
"Serbian (Latin, Bosnia and Herzegovina)" ili
"Croatian (Bosnia and Herzegovina)".

TASTER: OK (da prihvatiš izmene)
TASTER: OK (da učitaš kodnu stranu direktno sa HD-a)
TASTER: OK (da restartuješ Windows).

[ cgippc @ 03.10.2005. 17:21 ] @
X,
hvala ti na odgovoru, ali u pitanju je CGI/konzolna aplikacija, dakle nema kontrola. Pitanje je kako progurati unicode iz SQL Servera preko stdout-a do web servera

[ leka @ 03.10.2005. 20:20 ] @
cgippc, nikada nisam radio sa SQL Serverom, ali iz nekog svog iskustva sa raznoraznim bazama podataka mogu samo reci da je stopostotno moguce da SQL serveru das na znanje da tebi treba string u odredjenom enkoding-u. Na tebi ostaje da nadjes kako. :)
[ ljube @ 04.10.2005. 07:40 ] @
Ja bih pokusao da kompajliram sa UNICODE podrskom i da prilikom konverzije char u wchar sa funkcijom:

Code:

int MultiByteToWideChar(

    UINT CodePage,    // code page 
    DWORD dwFlags,    // character-type options 
    LPCSTR lpMultiByteStr,    // address of string to map 
    int cchMultiByte,    // number of characters in string 
    LPWSTR lpWideCharStr,    // address of wide-character buffer 
    int cchWideChar     // size of buffer 
   );


- navedem prvi parametar neku latinicnu/cirilicnu kodnu stranicu. Pokusaj onda insertovati sadrzaj te unicode varijable u bazu.

Code Page Description
1250 Latin 2: Eastern Europe
1251 Cyrillic



Nekada je u C-u pomagao poziv funkcije setlocale.

Sintaksa:
setlocale( LC_ALL, "French_Canada.1252" );