На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела Visual Basic: Общие вопросы
Здесь обсуждаются вопросы по языку Visual Basic 1-6 (а так же по схожим языкам, как, например, PowerBASIC).
Вопросы по Visual Basic .NET (это который входит в состав Visual Studio 2002/2003/2005/2008+, для тех, кто не в курсе) обсуждаются в разделе .NET.

Обратите внимание:
1. Прежде чем начать новую тему или отправить сообщение, убедитесь, что Вы не нарушаете правил форума!
2. Обязательно воспользуйтесь поиском. Возможно, Ваш вопрос уже обсуждали. Полезные ссылки приведены ниже.
3. Темы с просьбой выполнить какую-либо работу за автора в этом разделе не обсуждаются. Студенты, вам сюда: ПОМОЩЬ СТУДЕНТАМ!
4. Используйте теги [ code=vba ] ...текст программы... [ /code ] для выделения текста программы подсветкой.
5. Помните, здесь телепатов нет. Формулируйте свой вопрос максимально грамотно и чётко: Как правильно задавать вопросы
6. Запрещено отвечать в темы месячной (и более) давности, без веских на то причин.

Полезные ссылки:
user posted image FAQ Сайта user posted image FAQ Раздела user posted image Кладовка user posted image Наши Исходники user posted image API-Guide user posted image Поиск по Разделу user posted image MSDN Library Online user posted image Google

Ваше мнение о модераторах: user posted image SCINER, user posted image B.V.
Модераторы: SCINER, B.V.
  
> Поиск информации в БД
    Здравствуйте! Появился вопрос, как искать программным способом информацию в ячейках БД, созданную при помощи Recordset?

    Для большей понятности, пример: В Textbox вводится Номер Карты, который ищется в таблице, и затем в Label выводится количество денег на карте, найденные в той же таблице.

    user posted image
    Сообщение отредактировано: Gipnomanul -
      Так мы ищем где? ячеек в БД нет в принципе, в т.ч. даже понятия такого нет. Есть значения поля записи рекордсета, есть значение ячейки грида, в который выводится рекордсет.
        Цитата Akina @
        Так мы ищем где? ячеек в БД нет в принципе, в т.ч. даже понятия такого нет. Есть значения поля записи рекордсета, есть значение ячейки грида, в который выводится рекордсет.

        Если честно, я не знаю. Поэтому и задаю вопрос, каким методом лучше считывать ячейки из БД.
          Цитата Gipnomanul @
          Если честно, я не знаю. Поэтому и задаю вопрос, каким методом лучше считывать ячейки из БД.



          "Минимальная сущность" в БД в данном случае - RecordSet. И это не является проблемой для вашего случая. что вам мешает перебрать все имеющиеся записи (RecordSet-ы)? К сожалению, на VB с базами не работал, поэтому могу привести только псевдокод...

          ExpandedWrap disabled
            function findRecord() {
             
             foreach(RecordSet record : Table.getRows()){ // Перебираем все записи из таблицы Table
             
              if(record.getColumn("Номер карты").getValue()==TextBox1.Text) { // нашли запись, которую ищет пользователь
               Label1.Caption = record.getColumn("Количество денег").getValue(); // читаем деньги
               return;
              }
             
             }
             
             Label1.Caption = "Ничего не найдено";
             
            }


          Добавлено
          Ещё момент, только заметил. Судя по скрину, ваше приложение походит на .NET, нежели VB6... думаю, вы ещё и веткой ошиблись...
            VisualProg
            Да у него нет понимания, где искать. В исходном рекордсете? В источнике данных грида? В самОм гриде? В таблице БД безотносительно к гриду и рекордсету? Во всех этих случаях код будет разным. Более того, существуют случаи, когда для любой пары перечисленных наборов данных результаты будут различаться.
              Цитата Akina @
              Да у него нет понимания, где искать.

              Он же как то сформулировал это:
              Цитата Gipnomanul @
              В Textbox вводится Номер Карты, который ищется в таблице, и затем в Label выводится количество денег на карте, найденные в той же таблице


              Главное что бы он понимал, что под словом "Таблица" - понимается не DataGrid (визуальное представление данных, полученных от источника), а реальная сущность базы данных.

              Удивительно, ввёл в поиск "VB datasource", и первая ссылка (смотреть язык VB) отвечает на все вопросы ТС.

              Более того, тут есть полноценный SQL (мой псевдокод отпадает сразу) и всё что только может пригодиться, в отличие от этого злосчастного DataGrid в который ТС упёрся задавая вопрос.
                VisualProg
                Не совсем так. Правильных подходов два. Можно независимо от грида и его источника непосредственно в таблице поискать нужное значение. А можно его поискать в клоне рекордсета-источника. Второе, кстати, по трафику и производительности повыгоднее будет - при условии, что тип рекордсета позволяет это проделать.
                  Цитата Akina @
                  А можно его поискать в клоне рекордсета-источника. Второе, кстати, по трафику и производительности повыгоднее будет - при условии, что тип рекордсета позволяет это проделать.

                  Хорошо, а как быть в случае если базу в данный момент времени правят 100 пользователей, и мне необходимо выполнить поиск конкретной записи? Или, надо считать что изменения со стороны не критичны, и ими можно пренебречь до следующей синхронизации с базой?

                  Хотя, идея с подобным "кешем" мне понятна, но, интересно, как решают то что я описал в реальных проектах?
                  Сообщение отредактировано: VisualProg -
                    Цитата VisualProg @
                    как быть в случае если базу в данный момент времени правят 100 пользователей, и мне необходимо выполнить поиск конкретной записи?

                    Да ищи, какие проблемы? чем тебе другие мешают-то?
                    А если тебе ещё нужно в реальном времени отслеживать изменения, внесённые другими клиентами, то это отдельная, и не самая элементарная, задача.
                    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                    0 пользователей:


                    Рейтинг@Mail.ru
                    [ Script execution time: 0,0346 ]   [ 17 queries used ]   [ Generated: 29.03.24, 11:29 GMT ]