Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.86/14: Рейтинг темы: голосов - 14, средняя оценка - 4.86
3 / 3 / 0
Регистрация: 31.08.2014
Сообщений: 87

Форма запроса на добавление и поиск записи

28.09.2014, 16:38. Показов 2896. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
На форме помешены компоненты ADOConnection, DataSource, ADOTable. Все условия по подключению к БД и таблице созданы. Так же на форме есть Edit и Memo. База данных 1.mdb с таблицей "Таблица1" полем 1 = текстовое "Вопрос", 2 = поле МЕМО "Ответ"

Как правильно с помощью компонентов просмотреть базу на наличие совпадений поля 1 и Edit, при отсутствии таковых добавить запись Edit->поле1, Memo->поле2

Пробовал через ADOTable1->Locate ("Вопрос", Edit1 ->Text, [loCaseinsensitive]), а как выбрать запись с первого поля
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.09.2014, 16:38
Ответы с готовыми решениями:

Добавление записи в Listview(1 форма) через Диалоговое окно(3 форма) другой формы (2 форма)
Всем доброго дня и с наступающими праздниками! Знаю, тема 7 частых вопросов по WinForms уже не раз обсуждалась, и была прочитана, но или...

Добавление новой записи в таблицу и осуществление запроса на добавление при загрузке формы
Здравствуйте. Есть одна просьба, подскажите как сделать или пример кода покажите на вот такую фишку, при открытии формы для ввода данных в...

Форма на основе многотабличного запроса - изменение записи
Поиск по форуму ответов не дал. Хочу понять принцип реализации. Итак: На форму выводятся данные запроса, состоящего из таблиц и...

20
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
28.09.2014, 23:30
Цитата Сообщение от Assemler Посмотреть сообщение
а как выбрать запись с первого поля
Так а разве поле Вопрос оно не первое?
0
3 / 3 / 0
Регистрация: 31.08.2014
Сообщений: 87
29.09.2014, 05:54  [ТС]
Простите я хотел применить компоненты borlond пока не нашел как
0
29.09.2014, 13:40

Не по теме:

Цитата Сообщение от Assemler Посмотреть сообщение
я хотел применить компоненты borlond
Посмотрел бы и я на эти компоненты :D

0
3 / 3 / 0
Регистрация: 31.08.2014
Сообщений: 87
30.09.2014, 21:48  [ТС]
Простите, что не по теме написал, и может уже избита тема. Помогите мне решить задачу.

1 Компонент ADOTable какой существует метод чтобы в базу Accses в поле мемо добавить список типа TStringList
2 метод чтобы в базу Accses в поле числовое добавить число int
3 метод чтобы в базу Accses в поле логический добавить true или false
4 метод чтобы в базу Accses в поле OLE вставить рисунок указанный как путь к файлу С//мои документы//1.JPG
0
Модератор
 Аватар для D1973
9919 / 6455 / 2456
Регистрация: 21.01.2014
Сообщений: 27,397
Записей в блоге: 3
01.10.2014, 09:56
Когда-то я делал так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
TStringList *SL = new TStringList;
  SL->LoadFromFile("111.txt");
  ADOTable1->Active = true;
  ADOTable1->Append();
   ADOTable1->FieldByName("ID")->Value = 1; //Целочисленное поле
   ADOTable1->FieldByName("Question")->Value = "Asdjdklasjh"; //Текстовое поле
   ADOTable1->FieldByName("Really")->Value = true; //Логическое поле
   ADOTable1->FieldByName("Reply")->Assign(SL); //Мемо-поле
   Graphics::TBitmap *Img = new Graphics::TBitmap();
   Img->LoadFromFile("111.bmp");
   ADOTable1->FieldByName("Img")->Assign(Img);//Картинка 
  ADOTable1->Post();
  delete SL;
  delete Img;
Добавлено через 30 минут
Кстати, чтобы была возможность загружать не только картинки BMP:
C++
1
2
3
4
5
6
7
8
9
10
#include <jpeg.hpp>
...
TJPEGImage *Img = new TJPEGImage;
Img->LoadFromFile("C:\\TMP\\222.jpg");
Graphics::TBitmap *Bmp = new Graphics::TBitmap();
Bmp->Assign(Img);
ADOTable1->FieldByName("Img")->Assign(Bmp);
...
delete Img;
delete Bmp;
0
3 / 3 / 0
Регистрация: 31.08.2014
Сообщений: 87
01.10.2014, 20:19  [ТС]
Огромное спасибо за помощь все вроде работает
0
3 / 3 / 0
Регистрация: 31.08.2014
Сообщений: 87
03.10.2014, 23:13  [ТС]
Теперь пробую разобраться с поиском данных вводим данные в Edit2 далее поиск ADOTable1 ->Locate(....); не стану весь листинг проводить
Я перемещаю курсор на первое совпадение.
указываем переменную для загрузки из "Вопрос" .. AnsiString S = ADOTable1->FieldByName("Вопрос")->Value
Помещаем S в список типа TStringList ->ADD..., как проверить соответствует ли следующая строка условию поиска проделав тоже что и с первой.

Как загрузить полученный список в DBComboBox или каким способом это можно достичь этого проще. И как каждую строчку при выборе в компоненте DBComboBox заставив отображаться текст из поле МЕМО "Ответ"в DBMemo
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
06.10.2014, 06:04
Assemler, если я правильно вас понял, то вам подойдут свойства TADOTable.Filter и TADOTable.Filtered. Для отображения списка можно использовать TDBComboBox.
0
3 / 3 / 0
Регистрация: 31.08.2014
Сообщений: 87
16.11.2014, 21:07  [ТС]
простите что не стал создавать новой темы, кажется это по теме поиска записей в базе
компонент ADOTable1
как организовать фильтрацию

ADOTable1 ->Filter = а вот как правильно написать фильтрацию по числовому полю

ADOTable1 ->Filter = и как правильно написать фильтрацию по нескольким полям
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
17.11.2014, 06:42
Цитата Сообщение от Assemler Посмотреть сообщение
а вот как правильно написать фильтрацию по числовому полю
Точно так же, как и для строк, только числа внутри фильтра кавычками обрамлять не надо. А вообще про синтаксические элементы фильтра можете посмотреть здесь. (Любой программист, даже начинающий, обязан уметь читать техническую документацию на английском языке, поэтому смело кидаю ссылку на этом самом английском языке)
0
3 / 3 / 0
Регистрация: 31.08.2014
Сообщений: 87
20.11.2014, 13:56  [ТС]
спасибо как написано по http://docs.embarcadero.com/pr... y_xml.html
У меня не получилось пожалуйста не могли бы вы привести примеры

Добавлено через 1 минуту
Просто не могу понять саму концепцию записи. что и за чем должно следовать.

Добавлено через 1 минуту
Весьма был бы благодарен
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
21.11.2014, 04:38
Цитата Сообщение от Assemler Посмотреть сообщение
У меня не получилось пожалуйста не могли бы вы привести примеры
Может лучше вы приведете код, который у вас получился? Тогда будет виднее, что вы делаете не правильно.
0
3 / 3 / 0
Регистрация: 31.08.2014
Сообщений: 87
23.11.2014, 14:35  [ТС]
Я вас понял. Но боюсь не получится я не понимаю как правильно вот код
C++
1
2
3
4
5
ADOTable1 ->Filtered =false;
ADOTable1 ->Filter = "Заказчик='""+LabeledEdit3->Text+'";
ADOTable1 ->Filtered = true;
ComboBox1 ->Items ->Add(ADOTable1->FieldByName("Название отчета")->Value);
ComboBox1 ->ItemIndex =0;
Добавлено через 3 минуты
Он либо не ищет либо компилирует ошибку на строке
C++
1
ADOTable1 ->Filter = "Заказчик='""+LabeledEdit3->Text+'";
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
24.11.2014, 00:25
A Так?
C++
1
2
3
ADOTable1 ->Filtered =false;
ADOTable1 ->Filter = "Заказчик=" +StrToInt(LabeledEdit3->Text);
ADOTable1 ->Filtered = true;
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
24.11.2014, 07:07
Assemler,
Цитата Сообщение от kodv Посмотреть сообщение
числа внутри фильтра кавычками обрамлять не надо
Я так понимаю, вы эту фразу либо не понял, либо решили просто проигнорировать.
Цитата Сообщение от Assemler Посмотреть сообщение
Он либо не ищет либо компилирует ошибку на строке Код C1
ADOTable1 ->Filter = "Заказчик='""+LabeledEdit3->Text+'";
Ну так даже подсветка синтаксиса вам как бы намекает... Если вы не в состоянии провести верную конкатенацию так, чтобы компилятор не выдал ошибку, чем вам поможет пример? Копипаст навык не прибавляет, а такие элементарные вещи программист должен уметь делать.
0
3 / 3 / 0
Регистрация: 31.08.2014
Сообщений: 87
24.11.2014, 20:20  [ТС]
Пробовал
C++
1
ADOTable1 ->Filter = "Заказчик='""+LabeledEdit3->Text+'";
При выполнении приложения говорит Аргументы имеют не верный тип, выходят за пределы допустимого диапазона или вступают в конфликт друг с другом
C++
1
ADOTable1 ->Filter = "Заказчик=" +StrToInt(LabeledEdit3->Text);
Но ведь у меня поле "Заказчик" это текст и компиляция выдает ошибку
Вот полный текст поиска
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
//подключение базы
     ADOConnection1 ->ConnectionString = Driver_In + File_Bases_Dat + Base_Ini;
     //доступ к таблице для поиска
     ADOTable1 ->TableName ="Общее заказчик";
     ADOTable1 ->Open();
     //фильтрация
   switch (RadioGroup2 ->ItemIndex)
   {
       case 0: {
                  //найти № отчета
                  TLocateOptions Options;
                  Options.Clear();
                  Options << loCaseInsensitive;
                  int i = StrToInt (LabeledEdit3 ->Text);
                  ADOTable1->Locate("№ отчета",i, Options);
                  ComboBox1 ->Items ->Add(ADOTable1->FieldByName("Название отчета")->Value);
                  ComboBox1 ->ItemIndex =0;
                  Label2 ->Caption = "Возможные значения отчета";
                  ComboBox3 ->Items ->Add(ADOTable1->FieldByName("Заказчик")->Value);
                  Label5 ->Caption = "Возможные значения Заказчика";
                  ComboBox3 ->ItemIndex =0;
                  break;
               }
       case 1: {
                  //найти заказчика
                   ShowMessage("Выбрано 1");
 
                  ADOTable1 ->Filtered =false;
                  ADOTable1 ->Filter = "Заказчик=""+LabeledEdit3->Text";
                  //ADOTable1 ->FilterOptions = foCaseInsensitive;
                  ADOTable1 ->Filtered = true;
                  ComboBox1 ->Items ->Add(ADOTable1->FieldByName("Название отчета")->Value);
                  ComboBox1 ->ItemIndex =0;
 
                  break;
               }
0
Модератор
 Аватар для D1973
9919 / 6455 / 2456
Регистрация: 21.01.2014
Сообщений: 27,397
Записей в блоге: 3
27.11.2014, 06:18
C++
1
ADOTable1 ->Filter = "Заказчик=" + LabeledEdit3->Text;
Если фильтровать требуется по числовому полю
C++
1
ADOTable1 ->Filter = "Заказчик=\"" + LabeledEdit3->Text + "\"";
Если фильтровать требуется по текстовому полю
Двойные кавычки, которые должны обрамлять текстовые данные экранируются символом \
0
27.11.2014, 06:24

Не по теме:

Цитата Сообщение от D1973 Посмотреть сообщение
Двойные кавычки, которые должны обрамлять текстовые данные экранируются символом \
Embracadero в своих примерах упорно строки обрамляет одинарными кавычками ...

0
Модератор
 Аватар для D1973
9919 / 6455 / 2456
Регистрация: 21.01.2014
Сообщений: 27,397
Записей в блоге: 3
27.11.2014, 06:57
kodv, точно, с двойными кавычками не срабатывает, с одинарными - как с добрым утром
C++
1
ADOTable1->Filter = "Заказчик='" + Edit1->Text + "'";
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.11.2014, 06:57
Помогаю со студенческими работами здесь

Добавление и удаление записи, поиск записи с максимальной зарплатой, сортировка по алфавиту
Помогите, пожалуйста!:help: Очень нужно сделать до 26!(а если не сложно, то еще и с комментариями :-Добавлено через 27 минут если вы...

Форма для добавление записи с кнопкой
Здравствуйте! Подскажите, пожалуйста. Хочу сделать форму, для добавления записи в таблицу при нажатии кнопки. Т.е. на форме не...

Добавление записи в столбец с применением запроса
Добрый день,уважаемые коллеги! Мой научный институт создает базу данным по загрязнению осадков. База данных состоит из 5 таблиц. Таблица...

Access добавление записи в таблицу из запроса
Коллеги, доброго всем! есть запрос в котором имеются не повторяющиеся элементы. количество элементов постепенно увеличивается....

проверка каждой записи запроса на добавление перед вводом
Уважаемые форумчане! Помогите написать маленький цикл проверки каждой записи запроса на добавление перед добавлением записей в...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru