Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.236.234.62] |
|
Сообщ.
#1
,
|
|
|
Здравствуйте! Появился вопрос, как искать программным способом информацию в ячейках БД, созданную при помощи Recordset?
Для большей понятности, пример: В Textbox вводится Номер Карты, который ищется в таблице, и затем в Label выводится количество денег на карте, найденные в той же таблице. |
Сообщ.
#2
,
|
|
|
Так мы ищем где? ячеек в БД нет в принципе, в т.ч. даже понятия такого нет. Есть значения поля записи рекордсета, есть значение ячейки грида, в который выводится рекордсет.
|
Сообщ.
#3
,
|
|
|
Цитата Akina @ Так мы ищем где? ячеек в БД нет в принципе, в т.ч. даже понятия такого нет. Есть значения поля записи рекордсета, есть значение ячейки грида, в который выводится рекордсет. Если честно, я не знаю. Поэтому и задаю вопрос, каким методом лучше считывать ячейки из БД. |
Сообщ.
#4
,
|
|
|
Цитата Gipnomanul @ Если честно, я не знаю. Поэтому и задаю вопрос, каким методом лучше считывать ячейки из БД. "Минимальная сущность" в БД в данном случае - RecordSet. И это не является проблемой для вашего случая. что вам мешает перебрать все имеющиеся записи (RecordSet-ы)? К сожалению, на VB с базами не работал, поэтому могу привести только псевдокод... function findRecord() { foreach(RecordSet record : Table.getRows()){ // Перебираем все записи из таблицы Table if(record.getColumn("Номер карты").getValue()==TextBox1.Text) { // нашли запись, которую ищет пользователь Label1.Caption = record.getColumn("Количество денег").getValue(); // читаем деньги return; } } Label1.Caption = "Ничего не найдено"; } Добавлено Ещё момент, только заметил. Судя по скрину, ваше приложение походит на .NET, нежели VB6... думаю, вы ещё и веткой ошиблись... |
Сообщ.
#5
,
|
|
|
VisualProg
Да у него нет понимания, где искать. В исходном рекордсете? В источнике данных грида? В самОм гриде? В таблице БД безотносительно к гриду и рекордсету? Во всех этих случаях код будет разным. Более того, существуют случаи, когда для любой пары перечисленных наборов данных результаты будут различаться. |
Сообщ.
#6
,
|
|
|
Цитата Akina @ Да у него нет понимания, где искать. Он же как то сформулировал это: Цитата Gipnomanul @ В Textbox вводится Номер Карты, который ищется в таблице, и затем в Label выводится количество денег на карте, найденные в той же таблице Главное что бы он понимал, что под словом "Таблица" - понимается не DataGrid (визуальное представление данных, полученных от источника), а реальная сущность базы данных. Удивительно, ввёл в поиск "VB datasource", и первая ссылка (смотреть язык VB) отвечает на все вопросы ТС. Более того, тут есть полноценный SQL (мой псевдокод отпадает сразу) и всё что только может пригодиться, в отличие от этого злосчастного DataGrid в который ТС упёрся задавая вопрос. |
Сообщ.
#7
,
|
|
|
VisualProg
Не совсем так. Правильных подходов два. Можно независимо от грида и его источника непосредственно в таблице поискать нужное значение. А можно его поискать в клоне рекордсета-источника. Второе, кстати, по трафику и производительности повыгоднее будет - при условии, что тип рекордсета позволяет это проделать. |
Сообщ.
#8
,
|
|
|
Цитата Akina @ А можно его поискать в клоне рекордсета-источника. Второе, кстати, по трафику и производительности повыгоднее будет - при условии, что тип рекордсета позволяет это проделать. Хорошо, а как быть в случае если базу в данный момент времени правят 100 пользователей, и мне необходимо выполнить поиск конкретной записи? Или, надо считать что изменения со стороны не критичны, и ими можно пренебречь до следующей синхронизации с базой? Хотя, идея с подобным "кешем" мне понятна, но, интересно, как решают то что я описал в реальных проектах? |
Сообщ.
#9
,
|
|
|
Цитата VisualProg @ как быть в случае если базу в данный момент времени правят 100 пользователей, и мне необходимо выполнить поиск конкретной записи? Да ищи, какие проблемы? чем тебе другие мешают-то? А если тебе ещё нужно в реальном времени отслеживать изменения, внесённые другими клиентами, то это отдельная, и не самая элементарная, задача. |