[Ossm-members] FireBird & Qt

Dean Josevski dean at integraeng.com.mk
Thu Feb 2 17:46:36 UTC 2006


На Thursday 02 February 2006 18:28, Дамјан напиша:
>
> utf8_unicode_ci е тоа што сортира македонски правилно
>
со двете пробав, но истот е. (Ќе го вратам сега на unicode)


> >
> > QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf8"));
> > QTextCodec::setCodecForTr(QTextCodec::codecForName("utf8"));
>
> ова ти е нешто од QT-то.. како да ги третира C string-овите... мислам дека
> не ти треба воопшто.
>

Ми требаше бидејќи користам(ев) cp1251, сега ги исклучив.

>
> Ми се чини дека погрешно ги внесуваш податоците во база.

Конечно мислам дека нешто грешам во кодот на Qt, но не знам каде. 

Работам вака:

Во /etc/my.cnf имам:

[client]
default-character-set = utf8

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

character-set-server=utf8
collation-server=utf8_unicode_ci
init_connect='set collation_connection = utf8_unicode_ci;'


# Default to using old password format for compatibility with old and
# shorter password hash.
# Reference: http://dev.mysql.com/doc/mysql/en/Password_hashing.html
old_passwords=1

[mysql.server]
user=mysql
basedir=/var/lib

[mysqld_safe]
err-log=/var/log/mysqld/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid



Со show variables секаде добивам utf8.

Во Qt ги коментирав:
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf8"));
QTextCodec::setCodecForTr(QTextCodec::codecForName("utf8"));

и не користам tr(), или trUtf8().

На почетокот, преку апликацијата задавам:

void Form1::setNames()
{
	QSqlQuery query;

	query.exec("set names utf8");

	if (!query.isActive())
		query.lastError().showMessage();  

	query.exec("set collation_connection = utf8_unicode_ci");

	if (!query.isActive())
		query.lastError().showMessage();  
}


Резултатот е поразувачки - прашалници.

-- 
Деан Јошевски


More information about the Ossm-members mailing list