![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не работает locate [D7]
Ser_fantom © (2003-09-24 10:55:00)
Привет всем.
Возник вопрос: не работает locate на D7, чему я крайне удевлен.
Вот простой пример
if TableZac.Locate("id",tableall.FieldByName("Zac").AsInteger,[]) then
begin
......
end;
Поле id тоже типа integer и по нему есть индекс, однако поиск не работает. В чем может быть заковырка? Для остальных таблиц он отрабатывает нормально, но для этой нет, вернее отрабатывае с надцатова раза, а потом опять глухо.
ЮЮ (2003-09-25 02:52:00) [1]
>А ты что с MSSQL 2000 через BDE Работаешь
Работать с помошью BDE - ещё не преступление, а вот использовать TTable - уже преступление. (учти, что для каждой TTable создается отдельное соединение с сервером, кол-во которых у последнего достаточно ограничено)
dtm (2003-09-24 18:30:00) [2]
Vlad [7]
Каждый имеет право на описку;)
Ну тогшда пробуй ADO, работать с MS SQL через него.
Vlad (2003-09-24 15:32:00) [3]
>7. Ну а locate уже просто интересно почему всетаки не работает,
Ну если интересно, прочеши дебагером исходники и посмотри где глюк получается :)
Stas (2003-09-24 14:46:00) [4]
А ты что с MSSQL 2000 через BDE Работаешь ?
А-А !
Ser_fantom (2003-09-24 14:30:00) [5]
1.Первичный ключ в id есть
2.Никаких ограничений нет.
3.Даже если и есть null"ы я их просто отсекаю и ничего с этими записями не делаю.
4.В OnxxxScroll больше ничего не делаю.
5.Взаимо обратных связей я не воял, все просто: смещаюсь на одну запись в основной таблице, а по дочерним с locate пытаюсь сместить указатели и больше ничего.
6. Про masterSource просто забыл :-) что такое есть.
7. Ну а locate уже просто интересно почему всетаки не работает,
без него выкрутился, но на будущее всетаки интересно.
MsGuns (2003-09-24 13:25:00) [6]
>Alex_Raider © (24.09.03 13:20) [11]
6) замечание существенно
8) напрашивается
остальное к сабжу отношение не имеет
Alex_Raider (2003-09-24 13:20:00) [7]
Нормально я с ним работал ;-)
А информации автор дал маловато.
1. Есть ли первичный ключ в ID поле?
2. Установлены ли где-либо какие-либо ограничения или Constraints?
3. Нет ли NULL`ов в поле (Zac) по которому пытаемся отлоцироваться?
4. не происходит ли чего-либо на OnxxxScroll?
5. Нет ли взаимообратных связей?
6. Почему бы не сделать через masterSource?
7. зачем "лоцироваться" Locate для редактирования, если это
прекрасно делают или Lookup-поля, или DBLookup-эдиторы?
8. Зачем использовать BDE, когда для MS "родной" это ADO и
ADODataset?
Vlad (2003-09-24 13:11:00) [8]
>Alex_Raider © (24.09.03 13:01) [8]
Мда....
Мало ты, уважаемый с BDE работал видимо.
DenK_vrtz (2003-09-24 13:08:00) [9]
Alex_Raider ©, так посовету что-нить автору вопроса!
Alex_Raider (2003-09-24 13:01:00) [10]
Алё, советчики!
ничего у TTable не "глючит".
"Глючат" только кривые руки у горе-программистов.
Vlad (2003-09-24 12:07:00) [11]
>dtm (24.09.03 12:02) [6]
Еще ни разу не пробовал использовать TIBQuery при работе с MSSql 2000 ;-)
dtm (2003-09-24 12:02:00) [12]
Ser_fantom [5]
Ну сказали же - глючит он у TTable. Попробуй использовать TIBQuery, у меня пока вроде не глючил, но я работал с FB 1.5
Ser_fantom (2003-09-24 11:48:00) [13]
Про MasterSourse я совсем забыл. Спасибо что напомнили.
Но вопрос про locate конечно останется висеть в воздухе.
dtm (2003-09-24 11:30:00) [14]
Ser_fantom [3]
А разве не позиционируются они, если указать MasterSourse в компоненте как первый вариант или DataSourse выставить в TTable/TQuery указывающим на родительский ДС, а в них самих запросы записать с параметрами, имена которых указывают на поля ДС родителя?
Ser_fantom (2003-09-24 11:27:00) [15]
На событие TableAllAfterScroll пытаюсь по основной таблице спозиционировать все остальные таблицы для редактирования по id.
СУБД MSSQL 2000.
Vlad (2003-09-24 11:23:00) [16]
Locate в TTable имеет свойство глючить. Боюсь, от этого никуда не денешься.
Попробуй без индексов, хотя не уверен что в этом дело.
dtm (2003-09-24 11:22:00) [17]
Где наши телепаты? ;)
Что за СУБД? И поточнее опиши проблему.