|
|
|
DBLookupComboBox
|
|||
|---|---|---|---|
|
#18+
Добрый день! В DBLookupComboBox отображается список компаний. Если название компании - это одно слово - например: Пепси - то оно корректно отображается потом и в лайбле, и в едит и в фильтре. Но если слово состоит из двух слов - например: Пепси Пупси - то выдает ошибку - "Arguments are of wrong type, are out of acceptable range, or are in conflict with one another". Просьба помочь, кто знает как решить данну проблему. Вариант с "дефисом" или не слитно - не подходит. Код: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 09:20:04 |
|
||
|
DBLookupComboBox
|
|||
|---|---|---|---|
|
#18+
maxseo, потому что нужно использовать параметры. На худой конец брать фразы в кавычки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 09:34:17 |
|
||
|
DBLookupComboBox
|
|||
|---|---|---|---|
|
#18+
wadman, QuotedStr - корректно работает только с одним словом в название компании ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 09:51:15 |
|
||
|
DBLookupComboBox
|
|||
|---|---|---|---|
|
#18+
В БД название компание записывается правильно, и потом отображается в самом DBLookupComboBox - тоже корректно. А вот при фильтрации при сраавнение то ли из БД вытянивается только первое слово, то ли DBLookupComboBox откидывает лишнее, когда обнаруживает пробел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 09:55:53 |
|
||
|
DBLookupComboBox
|
|||
|---|---|---|---|
|
#18+
maxseoQuotedStr - корректно работает только с одним словом в название компании Это все от нехватки знаний... Если лень использовать параметры, то нужно привесит запрос к виду: Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 10:11:29 |
|
||
|
DBLookupComboBox
|
|||
|---|---|---|---|
|
#18+
wadmanmaxseoQuotedStr - корректно работает только с одним словом в название компании Это все от нехватки знаний... Если лень использовать параметры, то нужно привесит запрос к виду: Код: sql 1. Ты погоди. Вот клиент утверждает, что: maxseowadman, QuotedStr - корректно работает только с одним словом в название компании Возможно, "ашыпка" связана с тем, что в базе лежит "ПепсиПупси", а в образец для поиска вводится "Пепси Пупси" (с пробелом). Возможно, клиент считает, что поиск должен осуществляться как-то по совокупности слов (вхождение "Пуспси" или|и "Пепси"). ... Товарищ клиент, отвечайте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 10:18:58 |
|
||
|
DBLookupComboBox
|
|||
|---|---|---|---|
|
#18+
wadman, Знаний действительно немного, всегда использовал в фильтре такой запрос: Form1.ADOSum.Filter := 'Client like %'+Form1.DBLookupComboBox16.KeyValue+'% AND Model like %'+Form1.DBLookupComboBox17.KeyValue+'%'; Form1.ADOSum.Filtered := TRUE; Данный фильр работал отлично, но появились название компаний с двух и более слов и все - ошибка. Параметры не использовал ибо не знаю как правильно, чисто интуитивно методом тык и проб. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 10:28:59 |
|
||
|
DBLookupComboBox
|
|||
|---|---|---|---|
|
#18+
Жышы, Нет, в базе введены название клиентов правильно - т.е. с пробелом. Т.к это Form1.DBLookupComboBox16.KeyValue - и вытягивает данные с базы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 10:30:29 |
|
||
|
DBLookupComboBox
|
|||
|---|---|---|---|
|
#18+
Печалька тогда... Вот тоже мытарства начинающего в этом русле http://www.delphisources.ru/forum/showthread.php?t=22201 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 10:31:11 |
|
||
|
DBLookupComboBox
|
|||
|---|---|---|---|
|
#18+
maxseo, Покажи данные из базы и данные из поля фильтра. А еще покажи, как ты QuotedStr использовал. ~~~~~~~ Давай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 10:34:13 |
|
||
|
DBLookupComboBox
|
|||
|---|---|---|---|
|
#18+
Жышы, Form1.Label27.Caption := QuotedStr(Form1.DBLookupComboBox16.KeyValue); прописал в коде, только дя того чтобы наглядно видеть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 10:43:52 |
|
||
|
DBLookupComboBox
|
|||
|---|---|---|---|
|
#18+
Жышы, извините, спешка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 10:51:39 |
|
||
|
DBLookupComboBox
|
|||
|---|---|---|---|
|
#18+
maxseo, остался последний шаг: покажи р е альн ы й код с QuotedStr. ~~~~~~~~~~~ Ну! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 10:56:59 |
|
||
|
DBLookupComboBox
|
|||
|---|---|---|---|
|
#18+
Жышы, весь реальный код был представлен выше: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Модератор: Пользуйтесь тегом (кнопкой) SRC для оформления кода, пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 11:00:55 |
|
||
|
DBLookupComboBox
|
|||
|---|---|---|---|
|
#18+
Жышы, возможно по ссылке wadman - как вариант сделать счетчик на длину procedure DBLookupComboBox16.KeyValue ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 11:02:29 |
|
||
|
DBLookupComboBox
|
|||
|---|---|---|---|
|
#18+
maxseoЖышы, весь реальный код был представлен выше: procedure TForm1.DBLookupComboBox16Click(Sender: TObject); begin if Form1.DBLookupComboBox16.KeyValue = '' then begin Form1.ADOModelCur.Filtered := FALSE; end else begin Form1.ADOModelCur.Filter := 'Client like %'+Form1.DBLookupComboBox16.KeyValue+'%'; Form1.ADOModelCur.Filtered := TRUE; Form1.Label27.Caption := Form1.ADOModelCur.FieldValues['Client']; ------------ просто для вывода end; end; И где же тут QuotedStr? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 11:03:49 |
|
||
|
DBLookupComboBox
|
|||
|---|---|---|---|
|
#18+
maxseo, ты потомственный партизан, наверное? Ни в чем не сознаешься, запутываешь следователя, отстреливаешься до последнего патрона... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 11:07:27 |
|
||
|
DBLookupComboBox
|
|||
|---|---|---|---|
|
#18+
Жышы, извините if Form1.DBLookupComboBox16.KeyValue = '' then begin Form1.ADOModelCur.Filtered := FALSE; end else begin Form1.ADOModelCur.Filter := 'Client like %'+Form1.DBLookupComboBox16.KeyValue+'%'; Form1.ADOModelCur.Filtered := TRUE; Form1.Label27.Caption := QuotedStr(Form1.DBLookupComboBox16.KeyValue); end; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 11:43:34 |
|
||
|
DBLookupComboBox
|
|||
|---|---|---|---|
|
#18+
Жышы, просто не внимательный я как-то :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 11:48:22 |
|
||
|
DBLookupComboBox
|
|||
|---|---|---|---|
|
#18+
[quot maxseo]Жышы, извините Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. /quot] И в чем смысл подсвеченной строчки? Значение из Form1.Label27.Caption потом волшебны образом попадает в Form1.ADOModelCur.Filter? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 11:49:38 |
|
||
|
DBLookupComboBox
|
|||
|---|---|---|---|
|
#18+
Жышы, если закомментировать фильтрацию: if Form1.DBLookupComboBox16.KeyValue = '' then begin Form1.ADOModelCurrent.Filtered := FALSE; end else begin // Form1.ADOModelCurrent.Filter := 'Client like %'+Form1.DBLookupComboBox16.KeyValue+'%'; // Form1.ADOModelCurrent.Filtered := TRUE; Form1.Label27.Caption := Form1.DBLookupComboBox16.KeyValue; end; то Form1.DBLookupComboBox16.KeyValue в лайбле отображается корректно, наверное как вывод программа работает со значением переменной в Form1.DBLookupComboBox16.KeyValue - корректно. Я так поманию, БД берет для проверки за основу только первое слово из названия клиента и из-за это идет не соответствие. А если сделать запрос через query: Form1.ADOClientOrder.SQL.Clear; Form1.ADOClientOrder.SQL.Add('SELECT Client FROM db WHERE Client = " '+Form1.DBLookupComboBox16.KeyValue+' " '); Form1.ADOClientOrder.ExecSQL; как в этом запросе вывести на экран название соответствующего клиента: Form1.Label27.Caption := Form1.ADOClientOrder.FieldValue['Client'] так правильно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 12:06:00 |
|
||
|
DBLookupComboBox
|
|||
|---|---|---|---|
|
#18+
maxseo, ты смерти моей желаешь? Еще раз, медленно. Покажи код, в котором значение из QuotedStr() попадает в фильтр. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 12:16:27 |
|
||
|
DBLookupComboBox
|
|||
|---|---|---|---|
|
#18+
А ладно, вот тебе решение: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Так будет (скорее всего) работать, но так делать - неправильно. По многим причинам. Например, появится у тебя в фильтре кавычка - все и сломается. Как правильно - тебе уже говорили: wadmanmaxseo, потому что нужно использовать параметры. ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 12:19:34 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39487365&tid=2042039]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
200ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
73ms |
get tp. blocked users: |
2ms |
| others: | 228ms |
| total: | 545ms |

| 0 / 0 |
