![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
не отрабатывается селект к базе(( [D7, dBase, FoxPro]
-=snoop=- © (2005-08-03 09:26:00)привет всем, кака-то проблема дурацкая(), есть база *.dbf в ней имеется поле code , которое содержит как русские так и латинские буквы, ситыауия в том, что когда запрос имеет вид
lADO2LoginPro.SQL.Add
('select * from login.pro where ltrim(rtrim(code)) = '+''''+'ffffff'+'''') ;
....
запрос отрабатывается, а если вот так
lADO2LoginPro.SQL.Add
('select * from login.pro where ltrim(rtrim(code)) like '+''''+'кимли'+'''') ;
то (inttostr(lADO2LoginPro.RecordCount)) возиращает значение 0, подскажите, как решить трабл??
Ольга (2005-08-03 12:05:00) [21]
> содержит как русские так и латинские буквы
Вопрос, я так поняла, не в синтаксисе Like, а в кодировке?
Не выбираются только русские строки или без разницы?
evvcom (2005-08-03 11:37:00) [22]
> 'select * from login.pro where (code LIKE '+'"'+'%фффффф%'+'"'+')'
Не проще ли:
'select * from login.pro where (code LIKE "%фффффф%")'? Чего извращаться?
Sergey13 (2005-08-03 10:59:00) [23]2[12] -=snoop=- © (03.08.05 10:39)
>по поводу синтаксиса Like Ничего нового не увидел...
Но % добавил. 8-)
>вернул 0 записей
Значит разбирайся с регистром данных в поле CODE.
-=snoop=- (2005-08-03 10:39:00) [24]по поводу синтаксиса Like Ничего нового не увидел...
lADO2LoginPro.SQL.Add
('select * from login.pro where (code LIKE '+'"'+'%фффффф%'+'"'+')')
вернул 0 записей
-=snoop=- (2005-08-03 10:24:00) [25]вот всегда так, простите за мой фр. обосрут, а что конкретно не говорят...
Sergey13 (2005-08-03 10:17:00) [26]2 -=snoop=- ©
Воспользуйся советом из [2]
-=snoop=- (2005-08-03 10:15:00) [27]Соловьев © а что с кодом-то?
-=snoop=- (2005-08-03 10:11:00) [28]0 не база дурацкая, а проблема...
2 почему ADO? потому что пользовался ADO и ни каких проблем не возникало, тем более с кодировкой
Соловьев (2005-08-03 10:02:00) [29]
> привет всем, кака-то проблема дурацкая(), есть база *.dbf
> в ней имеется поле code
это не база дурацкая а прогер который так говорит, тем более посмотрев код
> lcUsrName :=''''+trim(lADO2USERPRO.FieldValues['Code'])+''''
> ;
> lcGrNm := ''''+trim(lADO2USERPRO.FieldValues['Grupp'])+''''
> ;
> lADO2LoginPro.SQL.Clear() ;
> lADO2LoginPro.SQL.Add
> ('select * from login.pro where ltrim(rtrim(code))
> like '+lcUsrName)
убеждаешся в этом еще раз... читать:
1. TQeruy.Parameters
2. О провйдере через который конектишся.
3. Почему АДО? когда БДЕ с этим лучше будет работать?
-=snoop=- (2005-08-03 09:58:00) [30]2 Dell3r ©
вообще кусок кода вот как выглядит
....
lcUsrName :=''''+trim(lADO2USERPRO.FieldValues['Code'])+'''' ;
lcGrNm := ''''+trim(lADO2USERPRO.FieldValues['Grupp'])+'''' ;
lADO2LoginPro.SQL.Clear() ;
lADO2LoginPro.SQL.Add
('select * from login.pro where ltrim(rtrim(code)) like '+lcUsrName)
....
lcUsrName = вычисляется в цикле, а "кимли" так для опытов, проверить
-=snoop=- (2005-08-03 09:49:00) [31]простите господа...
не "like" , а "="
lADO2LoginPro.SQL.Add
('select * from login.pro where ltrim(rtrim(code)) = '+''''+'кимли'+'''') ;
0 а строка есть 100% я ее сам туда пихал.
1 апострофов много, для того чтоб SQL воспринял ''''+'кимли'+'''' как 'кимли', а не как переменную кимли
Dell3r (2005-08-03 09:46:00) [32]lADO2LoginPro.SQL.Add
('select * from login.pro where ltrim(rtrim(code)) like "кимли") ;
evvcom (2005-08-03 09:42:00) [33]А ты уверен, что в login.pro имеется строка с code='кимли'?
Обычно like используют, когда хотят найти записи содержащие данную строку, а не точно ей соответствуют.
Johnmen (2005-08-03 09:40:00) [34]Читать LocalSQL.hlp на предмет изучения применения LIKE.
Dell3r (2005-08-03 09:37:00) [35]Я что-то про + не понял. Зачем столько апострофов?