I
Iurii
Многоуважаемые.У меня проблема.Я делаю программу которая через ADO связывается с DB что на Microsoft SQL Server 2000. У меня там поля типа nvarchar и ntext.Поля Unicode.
Я работаю с компонентами Tnt и ElPack для Unicode(чистый,без RTF).Если предложите другие заранее спасибо.
Вот проблема. Когда пишу в nvarchar все нормально,все шрифты на своем месте(я работаю с германскими,русскими и румынскими шрифтами ).Когда пишу в nchar происходит что-то непонятное а именно- исчезают все хвостики и шляпочки у германских и румынских букв, то есть эти буквы превращаются в чисто английские.
Пробовал писать
ADOQuery.SQL.Add('update Таблица set Поле=N'''+s+'''');
// где s:WideChar и кстати при
// чтении побайтно с lo и hi,чтобы убедится что эта нужная строка Unicode,тоже
// все нормально
ADOQuery.ExecSQL;
то же самое.
Пробовал через
ADOQuery.FieldByName('FieldName').Value:=s;
Пробовал через
ADOQuery.FieldByName('FieldName').Value:=Memo.Text // где TntМемо.Text типа Unicode все равно ничего не получается. С nvarchar никаких проблем а с nchar вот такие проблемы и хоть лопни. Пробовал писать в самом поле через SQL Manager - нормально, все сохраняется.Пишу запрос в самом SQL Manager опять все нормально.Помогите пожалуйста мне скоро сдавать программу а вот эта фигня никак не идет.Может я не правильно обращаюсь к Unicode строкам? Подскажите что я не так делаю.Заранее спасибо.
Я работаю с компонентами Tnt и ElPack для Unicode(чистый,без RTF).Если предложите другие заранее спасибо.
Вот проблема. Когда пишу в nvarchar все нормально,все шрифты на своем месте(я работаю с германскими,русскими и румынскими шрифтами ).Когда пишу в nchar происходит что-то непонятное а именно- исчезают все хвостики и шляпочки у германских и румынских букв, то есть эти буквы превращаются в чисто английские.
Пробовал писать
ADOQuery.SQL.Add('update Таблица set Поле=N'''+s+'''');
// где s:WideChar и кстати при
// чтении побайтно с lo и hi,чтобы убедится что эта нужная строка Unicode,тоже
// все нормально
ADOQuery.ExecSQL;
то же самое.
Пробовал через
ADOQuery.FieldByName('FieldName').Value:=s;
Пробовал через
ADOQuery.FieldByName('FieldName').Value:=Memo.Text // где TntМемо.Text типа Unicode все равно ничего не получается. С nvarchar никаких проблем а с nchar вот такие проблемы и хоть лопни. Пробовал писать в самом поле через SQL Manager - нормально, все сохраняется.Пишу запрос в самом SQL Manager опять все нормально.Помогите пожалуйста мне скоро сдавать программу а вот эта фигня никак не идет.Может я не правильно обращаюсь к Unicode строкам? Подскажите что я не так делаю.Заранее спасибо.