Конференция "Базы" » Заполнение DBListBox при помощи StoredProc [D5, MSSQL]
 
  • kirillrepin © (18.08.08 16:41) [0]
    Подскажите пожалуйста как заполнить DBListBox при помощи StoredProc (возвращает выборку)?
  • stas © (18.08.08 16:49) [1]
    так же, как и DataSet, а в чем вопрос?
  • clickmaker © (18.08.08 16:50) [2]
    while not sp.eof do begin
    cmb.items.add
  • Ega23 © (18.08.08 16:50) [3]
    (TStoredProc is TDataSet) = True



    В чём проблема?
  • KirillRepin © (18.08.08 16:56) [4]

    > (TStoredProc is TDataSet) = True
    >
    > В чём проблема?

    проблема в том что не отображается информация в DBListBox.

    пробовал так:
     StoredProc1.Active := True;
     while not StoredProc1.eof do
       begin
         DBListBox1.Items.Add(StoredProc1.Params[0].AsString);
       end;

    тоже не работает "виснет"
  • clickmaker © (18.08.08 17:02) [5]
    > тоже не работает "виснет"

    теперь осталось выяснить, причем здесь Params, если "возвращает выборку" и почему виснет
  • stas © (18.08.08 17:03) [6]
    Конечно будет виснуть
    while not StoredProc1.eof do
      begin
        DBListBox1.Items.Add(StoredProc1.Fields[0].AsString);
       StoredProc1.Next;
      end;
  • stas © (18.08.08 17:05) [7]
    И если вам его нужно наполнять из базы, то можно использовать dbLookupListbox
  • KirillRepin © (18.08.08 17:08) [8]
    попробовал
    while not StoredProc1.eof do
     begin
       DBListBox1.Items.Add(StoredProc1.Fields[0].AsString);
      StoredProc1.Next;
     end;

    все получилось.
    спасибо большое все за помошь!
  • KirillRepin © (18.08.08 18:05) [9]
    подскажите пожалуйста, при таком заполнении неработает селект по списку.
    выделяется последняя запись и другую выделить не возможно.
    что делать?
  • clickmaker © (18.08.08 18:29) [10]
    > [9] KirillRepin ©   (18.08.08 18:05)

    DataSource & DataField назначены?
    Для чего вообще тебе этот список нужен?
  • KirillRepin © (18.08.08 18:31) [11]

    > DataSource & DataField назначены?
    > Для чего вообще тебе этот список нужен?


    да конечно
  • clickmaker © (18.08.08 18:32) [12]
    ну, возможно, DataSet у DataSource либо только для чтения, либо CachedUpdates выключены
  • KirillRepin © (18.08.08 18:44) [13]

    > ну, возможно,
    > DataSet у DataSource либо только для чтения


    >  либо CachedUpdates выключены

    CachedUpdates был выключен, включил попробовал все тоже самое.
    DataSet у DataSource либо только для чтения - не нашел где посмотреть
  • MsGuns © (18.08.08 22:21) [14]
    Маразм крепчал

    Может, хоть немного почитать о назначении DB-aware контролов и хранимых процедур на сервере ?
  • Ega23 © (19.08.08 10:30) [15]
    DBListBox1.Items.Add(StoredProc1.Fields[0].AsString);



    Это попытка забить молоток гвоздём.
  • KirillRepin © (19.08.08 10:40) [16]

    > Это попытка забить молоток гвоздём.

    А возможно давать конкретный ответ на поставленный вопрос, и не разводить философию.
    каждый дро....ит как хочет!
  • clickmaker © (19.08.08 10:51) [17]
    > [16] KirillRepin ©   (19.08.08 10:40)

    Кстати, стоит прислушаться.
    Если данные в списке из справочника и есть связь ОсновнаяТаблица.КакойтоID - Справочник.ID, то проще юзать какой-нибудь Lookup-control
  • Ega23 © (19.08.08 10:54) [18]

    > А возможно давать конкретный ответ на поставленный вопрос,
    >  и не разводить философию.


    Конкретный ответ - этот контрол не предназначен для таких операций. Если так непременно надо Items.Add использовать - возьми обычный TListBox. И почитай, в чём разница между TListBox и TDBListBox. Объяснять - очень долго.


    > каждый дро....ит как хочет!


    Не хами.
  • KirillRepin © (19.08.08 10:59) [19]
    Удалено модератором
  • clickmaker © (19.08.08 11:01) [20]
    > Если так непременно надо Items.Add использовать - возьми
    > обычный TListBox

    Не всегда. DBListBox может подойти, если надо в поле базы записать какое-либо число с описанием. Н-р, некий статус, для которого нет отдельного справочника, набор констант
 
Конференция "Базы" » Заполнение DBListBox при помощи StoredProc [D5, MSSQL]
Есть новые Нет новых   [134473   +28][b:0][p:0.001]