Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2010.01.31;
Скачать: [xml.tar.bz2];

Вниз

приложение не передаёт в ms SQl русские буквы   Найти похожие ветки 

 
AIK ©   (2009-12-08 10:16) [0]

Выполняю следующий запрос с помощью ADOQuery
ADOQuery1.SQL.Add("Select * from _baza where key_sv = "1" and tov LIKE """+edit1.Text+"%"" ;");
Код работает при в воде En раскладкой букв в Едит в DBDrid’е отображаются все начинающиеся на это поля. Но когда начинаешь в водить русские буквы то выводит только  поле с содержанием в tov ??????????? которое я специально создал для проверки.
Вопрос  как передать в запросе в SQL русские буквы

P.S. DBGrid прекрасно отображает русские буквы
P.S.S В таблице _baza поле tov имеет тип nvarchar, collation = Cyrillic_General_CS_AI


 
sniknik ©   (2009-12-08 10:24) [1]

раз уж выбрал юникод то приводи все к нему. либо разберись все таки в вопросе кодировок который задавал вчера.


 
йцукен   (2009-12-08 10:26) [2]

Блин, приятно посмотреть. Наконец-то грамотный вопрос. В смысле задан грамотно, а не "не отображает русские буквы". Поздравляю с прогрессом.
К сожалению не в теме, за сим помочь не могу.


 
AIK ©   (2009-12-08 10:41) [3]


> sniknik ©   (08.12.09 10:24) [1]
> раз уж выбрал юникод то приводи все к нему.


А это как?


 
sniknik ©   (2009-12-08 10:55) [4]

и кстати тут у тебя неявная такая "мелочь" из-за которых я и не рекомендую пользоваться ADOQuery (в паре с ADOTable и ADOStoredProc). метод SQL это стринглист со всеми вытекающими из этого, он работает исключительно с анси строками... вайдестрока тут неявно приведется к анси, даже если изначально все задать правильно...

ну другая набившая всем оскомину рекомендация (но все одно никем не выполняющаяся пока пока из-за этого не "получат по зубам")... - пользоваться параметрами... значение параметра вполне могло бы быть юникодным.

вот почему все игнорируют то что им говорят, а после только и делают, что борются с последствиями? нет чтобы сразу пытаться понять, и после просто писать.... (риторический вопрос)

> А это как?
легко. конвертация простым присвоением к нужному типу.


 
sniknik ©   (2009-12-08 11:01) [5]

> легко. конвертация простым присвоением к нужному типу.
вот например
http://delphimaster.net/view/4-1259658224/
[7]
DName:= DomainName;
делается из-за того, что функция хочет юникод.


 
Anatoly Podgoretsky ©   (2009-12-08 11:23) [6]

> AIK  (08.12.2009 10:16:00)  [0]

Может и передает, dbgrid это не тот инструмент, что бы делать какие либо выводы. Запусти SSMS и там смотри.


 
sniknik ©   (2009-12-08 12:12) [7]

> dbgrid это не тот инструмент
dbgrid тут пока еще не причем, у него сам запрос в анси (а заодно и значение для выборки т.к. включено в запрос), при операции с юникодным полем это значение приводится к юникоду, а из-за проблем из прошлой ветки (так и не решенных) оно при приведении "коверкается" в те же знаки вопроса что были, ну и в операцию передаются уже они, и ищет именно их... правильно ищет. :)

кстати еще как решение можно использовать "насильное"  приведение одной из сторон условия к коллатиону другого. но, блин, из работающей практически "по умолчанию" системы делать монстра "на подпорках"... это нужно очень хорошо в этом разбираться, а не так как тут не понял чего то, вместо изучения сделал "затычкой" и повалились проблемы как снежный ком...


 
AIK ©   (2009-12-08 13:00) [8]


> а из-за проблем из прошлой ветки (так и не решенных)


это почему не решенных?


 
AIK ©   (2009-12-08 13:09) [9]

Русский текс у меня прекрасно отображается в dbgrid’е и через SQL Server Enterprise Manager открываю тоже всё в порядке
И вообще интересно почему когда я добавляю поле через ADOQuery1.Insert в вожу всё не обходимое русскими буквами то всё прекрасно а когда отправляю запрос через ADOQuery1.SQL.Add то отправляются вопросительные знаки в место русских букв, вроде один и тодже компонент


> и кстати тут у тебя неявная такая "мелочь" из-за которых
> я и не рекомендую пользоваться ADOQuery (в паре с ADOTable
> и ADOStoredProc).


А как насчет ADODataSet

P.S.  SQL начал учить только что, сильно не пинайте


 
clickmaker ©   (2009-12-08 13:14) [10]

> отправляю запрос через ADOQuery1.SQL.Add

может, так: insert into table(Field) values(N"вопросительные знаки в место русских букв") ?


 
sniknik ©   (2009-12-08 13:16) [11]

> это почему не решенных?
ты понял почему коверкается? исправил это? нет, ты "обошел" начав использовать другое.

сейчас ты столкнулся с первой "проблемой" с немного другого бока, если бы исправил то не столкнулся бы, если бы заменил все на новое тоже не столкнулся бы.


 
AIK ©   (2009-12-08 13:46) [12]


> ты понял почему коверкается?

Проблема была в collation (вроде)


> исправил это?

Cyrillic_General_CS_AI

А это разве не решение?

И что значит:

> если бы заменил все на новое тоже не столкнулся бы.


 
sniknik ©   (2009-12-08 13:56) [13]

> Cyrillic_General_CS_AI
> А это разве не решение?
у тебя этот колайтион по умолчанию? тогда убери юникод в полях
> поле tov имеет тип nvarchar
поменяй на varchar

> И что значит:
>> если бы заменил все на новое тоже не столкнулся бы.
использовал юникод везде. ответ [1]! я что не по русски отвечаю? ты там у себя, что мои ответы тоже в виде "?????" читаешь?


 
AIK ©   (2009-12-08 14:24) [14]


> у тебя этот колайтион по умолчанию? тогда убери юникод в
> полях

Нет по умолчанию SQL_Latin1_General_CP1_CI_AS


> поменяй на varchar

Тогда в утилите и DBGride отображаются вопросительные знаки, и заносятся тоже


 
sniknik ©   (2009-12-08 14:30) [15]

> Тогда в утилите и DBGride отображаются вопросительные знаки, и заносятся тоже
вот я и говорю
> так и не решенных [7]


 
AIK ©   (2009-12-08 14:37) [16]

Ну подскажи как мне настроить поля чтоб русский язык показывала
Cyrillic_General_BIN тоже пробовал без результата


 
sniknik ©   (2009-12-08 14:47) [17]

+
вообще, это не обязательное условие чтобы, это был коллатион по умолчанию, можно задавать явно, при создании базы/таблицы/поля, можно не задавать, можно приводить к нужному при операциях, можно в работать в юникоде, можно даже работать со строками как с бинарными массивами, вообще без коллатионов...
но это все требует чуть больше знаний чем если бы было просто по умолчанию.

в общем ты в той ветке поменял "велосипед на мопед" теперь просто обязан использовать/знать двигатель внутреннего сгорания, хотя бы по минимуму. иначе - "а чего это педали не вертятся?" или "я тут рычажок повернул (тормоз) и колеса перестали вращаться, почему?".

> Ну подскажи как мне настроить поля чтоб русский язык показывала
??????
у тебя этому 2 ветки посвящены, тебе это несколько раз повторяли в разных вариациях, или ты ждешь "чудо способ", типа "щелкнуть пальцами, дернуть волос из бороды и сказать трах тибедох три раза" (рецепт от Хотабыча). не будет такого, и через сто вопросов ответ будет один, либо делай по умолчанию либо разбирайся в "кухне". аминь.


 
AIK ©   (2009-12-08 15:29) [18]

УРА СДЕЛАЛ!!!
всё прекрасно работает, всё прояснилось когда начал всю базу заново создавать.


> у тебя этому 2 ветки посвящены, тебе это несколько раз повторяли
> в разных вариациях,


Ну так сложилось просил же сильно не пенать



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2010.01.31;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.008 c
2-1260359848
mefodiy
2009-12-09 14:57
2010.01.31
Копирование прикрепленных файлов в Microsoft Outlook


6-1212042758
Stas
2008-05-29 10:32
2010.01.31
Все входящие пакеты по TCP/IP


15-1259206910
koha!
2009-11-26 06:41
2010.01.31
Что лучше?


15-1259357418
Юрий
2009-11-28 00:30
2010.01.31
С днем рождения ! 28 ноября 2009 суббота


15-1258984807
Unknown user
2009-11-23 17:00
2010.01.31
Кнопка Favorites в диалогах Open/Save в Windows XP





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский