Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.94/16: Рейтинг темы: голосов - 16, средняя оценка - 4.94
2 / 2 / 1
Регистрация: 31.05.2014
Сообщений: 169

Выборка записей по определенному полю

01.08.2014, 06:24. Показов 3657. Ответов 71
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Проблема такая: у меня в базе, по мимо информации о документах, есть код ошибки этих документов (неправильно заполнены поля), так вот, как написать условие вывода информации по определенному значению этого поля, я пишу так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
if(Q->FieldByName("ERR_CODE") IS NULL)
        Memo1->Lines->Add("Документ № " + StringGrid1->Cells[4][i] + " от " +
                        Q->FieldByName("DATE_INSERT")->Value + " - " +
                        Q->FieldByName("ERR_CODE")->Value + " оплаяеноî");
      if(Q->FieldByName("ERR_CODE") = '0')
       Memo1->Lines->Add("Документ № " + StringGrid1->Cells[4][i] + " от " +
                        Q->FieldByName("DATE_INSERT")->Value + " - " +
                        Q->FieldByName("ERR_CODE")->Value + " неизвестный регион");
      if(Q->FieldByName("ERR_CODE") = '1')
       Memo1->Lines->Add("Документ № " + StringGrid1->Cells[4][i] + " от " +
                        Q->FieldByName("DATE_INSERT")->Value + " - " +
                        Q->FieldByName("ERR_CODE")->Value + " неизвестный отдел");
естественно не работае, подскажите, в чём проблема
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.08.2014, 06:24
Ответы с готовыми решениями:

Отображение записей по определённому полю
Всем привет. Задача такая: есть таблица, в этой таблице есть столбец с фамилиями сотрудников. Каждый сотрудник должен видеть только свои...

Выборка случайных записей по определенному полю
Здравствуйте! Помогите реализовать запрос на выборку рандомных записей. Например у меня есть таблица Деталь Цех Заказ Дет1 200...

Выборка по определённому полю
в таблице бд в кажой записи имеется поле с урл. урлы повторяются! Мне надо запросом определить сколько у меня всего ращличных урл? и...

71
2 / 2 / 1
Регистрация: 31.05.2014
Сообщений: 169
01.08.2014, 13:32  [ТС]
Студворк — интернет-сервис помощи студентам
DeadHipo, _Dimon_, в обоих случаях, при получении не null строки ERR_CODE выдаёт "abnormal program termination"
0
 Аватар для DeadHipo
85 / 85 / 33
Регистрация: 21.09.2013
Сообщений: 339
01.08.2014, 13:35
Safer54rus, Покажи полностью код
0
2 / 2 / 1
Регистрация: 31.05.2014
Сообщений: 169
01.08.2014, 13:38  [ТС]
DeadHipo,
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
37
38
39
40
41
42
{
 if (Q->Active)
      Q->Close();
      Q->SQL->Clear();
      Q->SQL->Add("select * from(");
      Q->SQL->Add("select LISH_ID, DOC_NUM, DOC_DATE, PRS_DATE, GIBDD_CODE, SURNAME, NAME, PATRONIMYC, OBL, RAI, IND, NAS_P, STREET, HOUSE,");
      Q->SQL->Add("KORPUS, KV, DBTR_BORN, DBTR_SUM, PAY_DATE, STATUS, KOAP_ST, KOAP_F, BORN_PLACE, FILE_NAME, ERR_CHECK, AIS_INS, DATE_INSERT, ID, FSSP_TO_GAI,");
      Q->SQL->Add("OKATO, KBK, ID_DBTR_TYPE, ERR_CODE, CHECK_DATE from  adm_gai_to_fssp_err");
      Q->SQL->Add("union");
      Q->SQL->Add("select LISH_ID, DOC_NUM, DOC_DATE, PRS_DATE, GIBDD_CODE, SURNAME, NAME, PATRONIMYC, OBL, RAI, IND, NAS_P, STREET, HOUSE,");
      Q->SQL->Add("KORPUS, KV, DBTR_BORN, DBTR_SUM, PAY_DATE, STATUS, KOAP_ST, KOAP_F, BORN_PLACE, FILE_NAME, ERR_CHECK, AIS_INS, DATE_INSERT, ID, FSSP_TO_GAI,");
      Q->SQL->Add("OKATO, KBK, ID_DBTR_TYPE,NULL as ERR_CODE,NULL as CHECK_DATE from adm_gai_to_fssp)");
      Q->SQL->Add("where DOC_NUM = :DOC_NUM");
      Q->Parameters->ParseSQL(Q->SQL->Text, true); //åñëè áåç ýòîé ñòðîêè ðàáîòàåò, òî ìîæåøü åå óáðàòü
    String FirstString;
     String SecondString;
     for(int i = 0; i < StringGrid1->RowCount; i++)
      {
       FirstString = "Ïîñòàíîâëåíèå ¹ " + StringGrid1->Cells[4][i];
       SecondString = "";
       Q->Parameters->ParseSQL(Q->SQL->Text, true);
       Q->Parameters->ParamByName("DOC_NUM")->Value = StringGrid1->Cells[4][i];
       Q->Open();
       if(Q->IsEmpty()) SecondString = (SecondString + " â áàçå íå îáíàðóæåíî");
        else
         {
          SecondString = " îò " + Q->FieldByName("DATE_INSERT")->Value + " - " + Q->FieldByName("ERR_CODE")->Value;
          if(Q->FieldByName("ERR_CODE")->IsNull) SecondString = SecondString + " îïëà÷åíî";
           else
            switch (Q->FieldByName("ERR_CODE")->AsInteger)
             {
              case 0: SecondString = SecondString + " íåèçâåñòíûé ðàéîí"; break;
              case 1: SecondString = SecondString + " íåèçâåñòíûé êîä îòäåëà"; break;
              case 2: SecondString = SecondString + " îòñóòñòâóåò äàòà äîêóìåíòà"; break;
              case 3: SecondString = SecondString + " îòñóòñòâóåò äàòà ðîæäåíèÿ";  break;
              case 4: SecondString = SecondString + " íåèçâåñòíûé êîä äîëæíèêà"; break;
              case 5: SecondString = SecondString + " íå âîçáóæäåííî, íî óæå îïëà÷åíî"; break;
             }
        }
       Q->Close();
       Memo1->Lines->Add(FirstString + SecondString);
}
0
1409 / 573 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
01.08.2014, 13:40
Safer54rus, вместо 21 строки напиши Q->Close();
0
2 / 2 / 1
Регистрация: 31.05.2014
Сообщений: 169
01.08.2014, 13:42  [ТС]
_Dimon_, не изменилось
0
1409 / 573 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
01.08.2014, 13:43
Safer54rus, да это понятно, просто так правильнее
0
 Аватар для DeadHipo
85 / 85 / 33
Регистрация: 21.09.2013
Сообщений: 339
01.08.2014, 13:45
Safer54rus, то что ты передаёшь это числа или буквы? Возможно параметр int а ты ему строки подсовываешь?
0
1409 / 573 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
01.08.2014, 13:46
хотя на 40 строке есть этот Q->Close();
0
2 / 2 / 1
Регистрация: 31.05.2014
Сообщений: 169
01.08.2014, 13:47  [ТС]
DeadHipo, в таблице INT'овый тип поля
0
 Аватар для DeadHipo
85 / 85 / 33
Регистрация: 21.09.2013
Сообщений: 339
01.08.2014, 13:49
и перед
C++
1
FirstString = "Постановление № " + StringGrid1->Cells[4][i];
поместить
C++
1
Q->Close();
Мы же вроде новый параметр ему даём потом.
0
1409 / 573 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
01.08.2014, 13:49
DeadHipo, да на то они и есть эти параметры, что им пофиг
0
 Аватар для DeadHipo
85 / 85 / 33
Регистрация: 21.09.2013
Сообщений: 339
01.08.2014, 13:52
_Dimon_, Просто мы потом вызываем
C++
1
 Q->Open();
Получается на уже открытом?
0
1409 / 573 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
01.08.2014, 13:54
Цитата Сообщение от DeadHipo Посмотреть сообщение
Получается на уже открытом?
закрытий он еще в 3 строке
Цитата Сообщение от _Dimon_ Посмотреть сообщение
Safer54rus, вместо 21 строки напиши Q->Close();
а после первого прохода цикла закрывается в 40 строке
Цитата Сообщение от _Dimon_ Посмотреть сообщение
хотя на 40 строке есть этот Q->Close();
0
 Аватар для DeadHipo
85 / 85 / 33
Регистрация: 21.09.2013
Сообщений: 339
01.08.2014, 13:57
Цитата Сообщение от _Dimon_ Посмотреть сообщение
Сообщение от _Dimon_
Safer54rus, вместо 21 строки напиши Q->Close();
Сообщение от _Dimon_
хотя на 40 строке есть этот Q->Close();
Они оба вне цикла ведь. один раз отработало, а потом?
ps. Возможно я не прав, но меня терзают сомнения.
0
1409 / 573 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
01.08.2014, 13:57
DeadHipo, там проблема в чем то другом...
0
 Аватар для DeadHipo
85 / 85 / 33
Регистрация: 21.09.2013
Сообщений: 339
01.08.2014, 13:58
_Dimon_, ну это да, так как мне помниться, что абнормолы от этого не вылетают
Автор, запускай в дебаге и жми break на выскочившим окошке при выполнении. И говори строку
1
1409 / 573 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
01.08.2014, 14:00
DeadHipo, цикл заканчивается на Memo1->Lines->Add(FirstString + SecondString);

Добавлено через 41 секунду
Цитата Сообщение от DeadHipo Посмотреть сообщение
Автор, запускай в дебаге и жми break на выскочившим окошке при выполнении. И говори строку
или ставь брекпоинты и смотри где вылетит
0
2 / 2 / 1
Регистрация: 31.05.2014
Сообщений: 169
01.08.2014, 14:03  [ТС]
DeadHipo, а где в шестом билдере дебаг?
0
 Аватар для DeadHipo
85 / 85 / 33
Регистрация: 21.09.2013
Сообщений: 339
01.08.2014, 14:04
Safer54rus, стрелочка с божией коровкой или что то подобное, вроде

Добавлено через 24 секунды
_Dimon_, посчитал скобки, с этого и стоило начать.
0
2 / 2 / 1
Регистрация: 31.05.2014
Сообщений: 169
01.08.2014, 14:10  [ТС]
Цитата Сообщение от DeadHipo Посмотреть сообщение
трелочка с божией коровкой или что то подобное, вроде
хоть убей, не могу найти
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.08.2014, 14:10

Предикаты. Выборка объектов из вектора по определённому полю
Здравствуйте. Имеется некий шаблон класса, один из членов которого - вектор. Т.е. что-то вроде template &lt;class T&gt; class...

Отсортировать массив записей по определенному полю
Описать тип Tovar с полями name (название), kod (код товара), price (цена), number (количество). Заполнить массив из 20 элементов данного...

Выборка записей из таблицы и группировка по полю
Приветствую. Есть таблица комментариев, в которой нас интересуют поля uid, user_id. Так вот, нужно выбрать из этой таблицы все уникальные...

Запрос: Выборка записей значения которых по полю Х не содержат таких же значений имеющихся в другой таблице
Суть: Есть две таблицы в каждой из которых есть коррелирующие поля, в таблице1 - 100 записей, в таблице2 - 10 (значения которых ранее были...

Как к упорядоченному массиву записей к определенному свойству привязать весь массив записей?
вот кусок процедуры. {упорядочить по возрастанию} procedure vozkv(n:integer;h:a); var k,i,tmp,m,o:integer;var z:a; begin for k:=1...


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Нейтральные знания ..., ... чистая наука. Пока что-то проходит модерацию на Хабре, стоит развить мысль ...
Hrethgir 20.07.2026
К таким радикальным взглядам я конечно в той публикации не приходил, но чтобы скоротать вечер, решил углубиться немного. 1. Почему показания термометра заряжены целью? Цель заложена в самом. . .
Установка нескольких штампов электронной подписи в строго определенных местах файла docx
ВладимирСамохин 19.07.2026
(В!) Работа с Электронной подписью - это неотъемлемая часть современного документооборота. Но что делать, если нужно поставить несколько штампов электронной подписи в строго определенных местах. . .
сукцессия 35. Научная статья о проделанной работе
anaschu 19.07.2026
Написал в формате латекс и пдф
Вангую, что это не пройдёт модерацию, и на неделе я запущу свой сервер.
Hrethgir 19.07.2026
Эта публикация сейчас в песочнице и ждёт приглашения. https:/ / habr. com/ ru/ sandbox/ 295048/ По ссылке 403. Не очень информативно такую ссылку постить. Запись от Usaga размещена Сегодня в 06:46 . . .
сукцессия 33. открытые вопросы от клауде
anaschu 19.07.2026
"Что накопилось за эту часть А — тринадцать правок, из которых шесть пришли из ваших вопросов и каждая оказалась реальной ошибкой, а не калибровкой: односторонний симбиоз, отсутствующий листопад,. . .
32 сукцессия
anaschu 19.07.2026
сукцессия 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не «подкручивает» сходимость —. . .
сукцессия 31: модель микоризы - это модель ещё нескольких явлений, социальных и экономических
anaschu 18.07.2026
Теория «Всего»: апдейт v1. 1. 2 — 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не. . .
сукцессия 30. Массив проверяющих друг друга моделей
anaschu 18.07.2026
Архитектура сети взаимопроверяющих моделей микоризной сукцессии (v2. 0) Развитие тензорного ОДУ-ядра и создание кросс-платформенного калибровочного полигона Уважаемые коллеги! В продолжение. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru