Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
0 / 0 / 1
Регистрация: 04.05.2014
Сообщений: 106
MS Access

DBgrid

25.05.2015, 13:59. Показов 2260. Ответов 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,613
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,613
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,613
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
Ответ Создать тему
Новые блоги и статьи
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Новости компьютерного мира и их обсуждение (4) Салют, шампанское, овации! :drink:
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru