0 / 0 / 1
Регистрация: 04.05.2014
Сообщений: 106
MS Access

DBgrid

25.05.2015, 13:59. Показов 2287. Ответов 53
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток программисты. В Accsess создана БД с ключевым полем ID, и БД в Dlephy7 выводится в DBGrid, немогли бы вы подсказать можно ли взять все значения ID и поместить в одномерный массив. Немного поясню что к чему, надо сделать программу, тесты, причем программа должна уметь как и проводить тест так и создавать вопросы к этому тесту, в БД хранятся сами вопросы, каждому вопросу соответствует свой ID, в тесте всего 5 вопросов, и надо сделать так чтобы и из всех вопросов в случайным образом выбирались 5 вопросов. Как мне сделать так чтобы все существующие ID копировались в масив (просто если добавить туда вопрос он будет иметь допустим ID 1, а потом удалить его и добавить следующий то он будет иметь ID 2 и так далее). Возможно ли это ?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.05.2015, 13:59
Ответы с готовыми решениями:

Запросы: для выбранного в DBGrid сотрудника отобразить информацию в другом DBGrid
Добрый вечер! Вот какой вопрос необходимо для выбранного сотрудника в DBGrid отобразить информацию в другом DBGrid допустим об образовании....

Как вывести в DBGrid информацию только по выбранной строке в другой таблице DBGrid?
У меня есть 3 таблицы - Компании, Адреса и Квартиры. Компании содержит поля - Код компании и название Адреса содержит поля - Код...

Как можно посчитать разницу столбцов DBGrid и вывести в другой столбец другого DBGrid?
Я знаю как посчитать разницу в одном и том же DBGrid. Но, дело в том, что мне нужно вывести это в другой DBGrid. Я сделала вот так,...

53
0 / 0 / 1
Регистрация: 04.05.2014
Сообщений: 106
27.05.2015, 19:31  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Lord_Voodoo Посмотреть сообщение
кстати, использовать не совсем правильно RecordCount, т.к. есть ситуации, когда это значение будет отображать некорректное значение, к примеру, если данные из БД вычитываются буферизированно...
я не чего не понял
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
27.05.2015, 19:45
GoOFee, некоторые компоненты не всю таблицу вытягивают, а по N записей, при этом RecordCount будет показывать не размер таблицы, а N записей...

вернее не так, количество записей будет в зависимости от того, сколько страниц записей будет загружено, т.е. чтобы отобразить корректное количество записей в таблице, необходимо выполнить функцию Last
1
0 / 0 / 1
Регистрация: 04.05.2014
Сообщений: 106
27.05.2015, 19:47  [ТС]
Lord_Voodoo, так функция recordCount показывает номер текущей записи ?
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
27.05.2015, 20:20
GoOFee, нет, показывает количество записей, но бывают ситуации, когда это количество будет некорректным, т.е. это не панацея, а запрос всегда покажет правду... это на будущее...
1
пофигист широкого профиля
4770 / 3206 / 862
Регистрация: 15.07.2013
Сообщений: 18,614
28.05.2015, 03:16
Если TADOTable.RecordCount не покажет количество записей в таблице, а TADOTable.RecNo не покажет номер текущей записи, это даст мне дополнительный аргумент в спорах с теми, кто призывает использовать в программах сей компонент.
1
0 / 0 / 1
Регистрация: 04.05.2014
Сообщений: 106
28.05.2015, 20:34  [ТС]
northener, нет все нормально показывает нормально все (RecordCount)

Добавлено через 3 часа 24 минуты
Lord_Voodoo, northener, Нужна ваша помощь, я генерирую случайные числа в диапазоне от 0 до dataset.RecordCount, а нужно генерировать от 1 до recordCount, просто там что получается что генерируются 0, а такой записи нету, плюс надо сделать без повторения но почемуто при трасеровки я просматриваю масив и там встречаются 0 вот сам цикл генерации этих чисел и проверка на повторяемость
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
a:=Form2.DBGrid1.DataSource.DataSet.RecordCount;
randomize;
 m:=0;
 while m < n do
 begin
 m:=m+1;
  mas[m]:=random(a);
   for k:=1 to m-1 do
    if mas[k]= mas[m] then
     begin
      m:=m+1;
      break;
     end;
 end;
Вот чтобы сделать генерацию в диапазоне от 1 до recordcount я пытался писать так
Delphi
1
 mas[m]:=random(1,a);
но выдается ошибка на этой строчке [Error] Unit1.pas(52): ')' expected but ',' found. И я не понимаю как это исправить, гуглил вроде бы так использовать можно но не получается у меня (

Добавлено через 24 минуты
Также пробывал через RandomRange передавал туда 1 и а, но серовно появлялись 0 и повторение
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
29.05.2015, 08:29
northener, помимо того, что TADOTable - богомерзкий компонент, вся эта технология ADO - богомерзкая... ибо не может универсальная технология быть лучше заточенной под конкретную БД в априори... RecordCount - показывает количество записей, которые загружены компонентом. Есть некоторые компоненты, которые выкачивают не все записи сразу, а только определенную часть, следовательно, и это свойство будет отображать некорректное количество записей, проверено лично на ODAC-ах... RecNo тоже не стоит использовать, т.к. и с ним бывают неприятные сюрпризы, правда это встречал еще при работе с FoxPro... есть там свои нюансы, когда для таблицы определены несколько индексных файлов...

GoOFee, ну добавляй к полученному числу +1, в чем проблема-то?
0
0 / 0 / 1
Регистрация: 04.05.2014
Сообщений: 106
29.05.2015, 15:18  [ТС]
Lord_Voodoo, тогда может выйти за пределы диапазона
0
пофигист широкого профиля
4770 / 3206 / 862
Регистрация: 15.07.2013
Сообщений: 18,614
29.05.2015, 17:27
Цитата Сообщение от Lord_Voodoo Посмотреть сообщение
northener, помимо того, что TADOTable - богомерзкий компонент
Ну и я о том же. TADOTable и TADOQuery позиционировались как удобная замена TTable и TQuery при переводе программ с BDE на более современные движки. Но как выяснилось замена хоть и удобная, но плохая. Лучше сразу было использовать естественные для ADO TADODataset, TADOCommand.
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
29.05.2015, 19:53
GoOFee, если диапазон будет от 0 до RecordCount - 1, то все будет хорошо... вообще меня такие вопросы, если честно пугают, потому что именно твоя задача придумать, как должна работать программа... а ты на каждый чих бежишь искать решения на форуме, это не совсем правильно... иногда надо заставлять и себя подумать, ИМХО... особенно, если учесть, что все юзвери и ламеры надеяться на программиста в любой проблемной ситуации, но им это позволено по статусу
0
0 / 0 / 1
Регистрация: 04.05.2014
Сообщений: 106
29.05.2015, 21:02  [ТС]
Lord_Voodoo, на форму я обращался когда были проблеммы, и я писал уже что программист из меня так себе
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
29.05.2015, 21:43
GoOFee, ну если не напрягаться, то так оно и будет... ты думаешь, тут людям в спинной мозг вживляют знания... но ведь как-то же разбираются, причем ведь задачка тривиальная, просто выбрать правильно диапазон... ничего не мешает просто попробовать, да и вариантов ведь не так много, согласись... тут даже простым методом перебора можно угадать... тем более, в самом начале у тебя вообще ничего не получалось, теперь уже устраняешь некоторые недостатки, значит можешь, но ленишься... ведь сам видишь, подсказать, направить всегда готовы, тем более на этом форуме...
0
пофигист широкого профиля
4770 / 3206 / 862
Регистрация: 15.07.2013
Сообщений: 18,614
30.05.2015, 01:49
Цитата Сообщение от GoOFee Посмотреть сообщение
Lord_Voodoo, на форму я обращался когда были проблеммы, и я писал уже что программист из меня так себе
И ты не хочешь стать программистом чуть более высокого уровня, чем "так себе*?
0
0 / 0 / 1
Регистрация: 04.05.2014
Сообщений: 106
30.05.2015, 02:55  [ТС]
northener, я уже не знаю чего я хочу

Добавлено через 3 минуты
Lord_Voodoo, у меня нету проблемы с тем как придумывать решение задачи у меня постоянные проблемы в ее реализаци, по себе я заметил что мне гараздо легче находить ошибки в чужих программах и по советам некоторых людей (которые всю жизнь проработали программистами и не плохо живут сейчас) говорят что из меня тестировщик не плохой выйдет, но откровенно говоря мне все так надоело что словами не передать, и я приоткрою немного карты и скажу что эта программа мой дипломный проект на бакалаврат. И под ошибками я имел в виду не те которые всплывают при компеляции, а когда компилируется программа нормально не не правильно считает допустим, ну или что то в этом роде, когда не всматриваясь можно не заметить ошибку, а вообще я люблю очень математику, и на программиста пошол учится только потому что мне рассказали что ее таммного, а на практике, то что я увидел, ее там нету максимум это сложение вычитание и то для циклов
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.05.2015, 02:55

Фиксирование нужных столбцов DBGrid или скрыть относительно позиции гор. скролла DBGrid'a необходимые столбцы
Добрый день! Можно ли в компоненте DBGrid сделать фиксированными определенные столбцы? или же как то вычислять позицию горизонтального...

Из dbGrid вывести выбранные строки в другой DbGrid
Мне надо вывести Из dbGrid вывести выбранные строки в другой DbGrid, например есть 100 записей в одном DbGrid нужно вывести 1-ю и 4-ю в...

Перенос записей из одного DBGrid в другой DBGrid
Здравствуйте. Есть проблема! Ни как ни получается перенос записей Вот текст кода: procedure TF_Licenzie.DBGrid1CellClick(Column:...

Связывание индикатора DBGrid со значениями в другом DBGrid
Доброго дня! Имеется два DBGrid с подключенными разными взаимосвязанными таблицами, также один ADOConnection, два ADOQuery и два...

Из dbgrid передать активную строку в другой dbgrid
Приветствую! Подскажите как реализовать следующее: база access, подключение Ado, на форме zakaz таблица, нужно что бы по нажатию на строку...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
54
Ответ Создать тему
Опции темы

Новые блоги и статьи
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru