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

Вниз

DBLookupComboBox программное позиционирование?   Найти похожие ветки 

 
Matvey   (2002-10-28 21:18) [0]

Господа подскажите если знаете как програмно спозиционировать в DBLookupComboBox "указатель" у этого компонента к сожалению нет, да и не может быть свойства Items, а при заполнении его списком из БД он не позиуионируется, т.е. пользователь должен в любом соучае торкнуть мышой и начать выбор. К сожалению например Query1.First; ни к чему не приводят, ни каких свойст типа Select или MoveBy у DBLookupComboBox нет. Как это cделать???

Да и еще в догонку долго мучился как передать в запрос переменную типа String, пришел к выводу что делается это так

str:="WHERE TrackNumber=1" ;
Query1.sql.Add("SELECT * FROM Tracks "+str+"");

например, но в литературе натыкался на конструкцию типа WHERE=:qqq, где qqq - пременная типа string.
_______________________________________________
Проясните с синтаксисом пожалуста, кде и сколько кавычек ставить и знаков + ?


 
ЮЮ   (2002-10-29 09:37) [1]

1) Если DBLookupComboBox связан с полем НД (заполнены DataField и DataSource), то, естественно, надо первоначально установить какое-либо значение для этого поля, тогда оно и отразится.
Если же он не связан с полем НД, а используется только для выбора записей из ListSourсе, то тогда устанавливать значение KeyValue.
Сам предпочитаю RxDBLookupCombo, т.к. кроме позиционирования по KeyValue позволяет позиционироваться по Value b DisplayValue. Более того,там полезней интерфейс при автоинкрементном поиске по вводимым символам, особенно для пользователей, которые не могут "строчить" по клаве, как из пулемёта :-)

2)Конструкция WHERE=:qqq позволяет создавать параметрические запросы, что даёт значительный выигрыш при многократном использованнии (см.Prepere). Но изменять значение надо через Params. Вариант с изменением текста запроса Query1.sql.Add("SELECT * FROM Tracks "+str+""); вынуждает снова и снова компилировать запрос.


 
Johnmen   (2002-10-29 09:46) [2]

>ЮЮ © (29.10.02 09:37)

2) Безусловно, параметрический запрос предпочтительней...

>Вариант с изменением текста запроса Query1.sql.Add("SELECT *
>FROM Tracks "+str+""); вынуждает снова и снова компилировать
>запрос.

Ну и что такого ?




 
Victor_Cr   (2002-10-29 09:59) [3]

Для позиционирования я использую закладки:


procedure TLimitPower.FormShow(Sender: TObject);
var
BM: TBookmarkStr;
begin
qDate.Active := True;
// первоначальное заполнение dcbDate
while not qDate.Eof do
begin
if /запись надо отобразить первой/ then
BM := qDate.Bookmark;
dcbDate.Items.Append(qDateNM.AsString);
qDate.Next;
end;
qDate.Bookmark := BM;
end;

где qDate - TQuery
dcbDate - TDBScrollCombo связаный с qDate


 
ЮЮ   (2002-10-29 10:04) [4]

Johnmen © (29.10.02 09:46)
>Ну и что такого ?

Ну и ничего :-) Если это запрос для отображение Master-Detail, то, естественно, нужен "персональный" параметрический запрос, с выполненным Prepare. Если же это используется, например, для выборки по запросу пользователя, то текст запроса можно (и нужно)формировать динамически. Вот и всё :-)


 
Johnmen   (2002-10-29 10:22) [5]

>ЮЮ © (29.10.02 10:04)

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


 
ЮЮ   (2002-10-29 10:32) [6]

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


 
Matvey   (2002-10-29 22:21) [7]

Всем спасибо я все понял :)



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

Форум: "Базы";
Текущий архив: 2002.11.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.008 c
1-59134
dj_adrian
2002-11-07 22:53
2002.11.18
Непонятный баг...


14-59410
Bboy
2002-10-31 10:55
2002.11.18
Как восстановить ContactList в ICQ 99a???


1-59255
Doni
2002-11-07 08:22
2002.11.18
перекодирвка текста


7-59441
Maxi-mov
2002-09-15 13:36
2002.11.18
Как можно


1-59197
siliks330
2002-11-09 09:27
2002.11.18
Как сделать текст.редактор, для работы с очень большими текстами?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский