![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка при поиске [D6, IB5.x]
Ренат © (2004-01-15 11:39:00)
Пишу кусок
if IBTable4.Locate("streetnm;districtid",VarArrayOf([ul,disid]),[])
типы данных совпадают.
Выдается ошибка Cannot transliterate ... В чем м.б. дело?
подскажите
Term (2004-01-15 12:34:00) [21]
> Ты сказал, что нЕфига использовать навигационные методы
> в IB.
всё верно, токо я еще сказал что всё относительно, под относительно понимается объём возвращаемого набора данных, если не большой, то пожалста Locate, я ж не ставлю вопрос кардинально
Johnmen (2004-01-15 12:28:00) [22]
>Flagman © (15.01.04 12:22)
Странно... На прямой четкий вопрос Vlad © (15.01.04 12:19)
нет ответа. А только бесполезный совет не относящийся к делу...
Vlad (2004-01-15 12:26:00) [23]
> Term © (15.01.04 12:22) [14]
Да причем тут TIBTable ?
Ты сказал, что нЕфига использовать навигационные методы в IB.
Я тебе привел пример, где без них не обойтись. В любом наборе данных, не обязательно TIBTable.
> Flagman © (15.01.04 12:22) [15]
Угу, только там используются те же навигационные методы. Смысл его использовать для этого ?
Flagman (2004-01-15 12:22:00) [24]
2 Vlad
Юзай TDBGridEh из EhLib
Там эта задача давно решена, причем хорошо оформлена визуально.
Term (2004-01-15 12:22:00) [25]
> Vlad © (15.01.04 12:19) [13]
опять же не используя TIBTable, чо хош только не TIBTable, почему написанно выше :)))
Vlad (2004-01-15 12:19:00) [26]
> Flagman © (15.01.04 12:13) [12]
Ну да, а представь что у тебя есть задача динамически позиционироваться на строки в DBGrid, в зависимости от набираемых пользователем клавишей ? Как ты эту задачу решишь ?
Flagman (2004-01-15 12:13:00) [27]
2 Vlad
"Медленно и печально" - это из анекдота...
Если набор данных небольшой, то да... А если большой?
Я в таких случаях использую конструкцию типа
Flg=DATABASE.QueryValue("Select Count(ID) From Table1 Where ...",0);
if (Flg=1) then ...
else...
Работает быстрее чем Locate, причем по всей таблице.
Term (2004-01-15 12:09:00) [28]
> Vlad © (15.01.04 12:00) [8]
вот именно > Flagman © (15.01.04 12:02) [9]
всё так и есть, ведь всё относительно, если у него в таблице мильён записей и по ней Locate делать ... работать то конечно будет но... ничего хорошего от такой работы разработчику не скажут :))) Да к тому же TIBTable обращается к таблице вот так:
select * from Table
то и трафик будет офигенный, и ваще эти компаненты были введены для совместимости с БДЕ, так что это можно сказать атавизмы
Vlad (2004-01-15 12:04:00) [29]
> Flagman © (15.01.04 12:02) [9]
Насчет мелденно - согласен. Но это лечится - не делай больших наборов данных на клиенте. Насчет печально - не согласен. Зачастую очень удобная и нужная функция.
Flagman (2004-01-15 12:02:00) [30]
2 Vlad
Работать можно... Только медленно и печально... ;)
Vlad (2004-01-15 12:00:00) [31]
> Term © (15.01.04 11:57) [7]
Locate - вполне навигационный метод. И почему же с ним нельзя работать в IB ?
Term (2004-01-15 11:57:00) [32]
>2 Flagman © (15.01.04 11:55) [6]
я это сказал к тому, чтобы он не пытался работать с IB навигационным методом, а не о том какие компаненты круче :)))
Flagman (2004-01-15 11:55:00) [33]
2 Term
И если на то пошло лучше юзать FibPlus
Vlad (2004-01-15 11:49:00) [34]
> Ренат © (15.01.04 11:46) [4]
> ладно буду ковырять
Совет: начни "ковыряние" с того, что пропиши в IBDatabase.params
строчку:
lc_ctype=win1251
Ренат (2004-01-15 11:46:00) [35]
ладно буду ковырять
Term (2004-01-15 11:45:00) [36]
не вдаваясь в подробности, не используй TIBTable тупиковый путь.
Возьми сразу TIBDataSet и осваивай его
Vlad (2004-01-15 11:44:00) [37]
http://www.ibase.ru/devinfo/ibrusfaq.htm
Flagman (2004-01-15 11:43:00) [38]
Полагаю COLLATE