С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
 Аватар для gvenog
1 / 1 / 0
Регистрация: 17.04.2010
Сообщений: 55

Редактирование в DBGrid нескольких dbf

19.05.2013, 21:43. Показов 1469. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я загружаю в 6 DBF таблиц через BDE с помощью SQL запроса в DBGrid:

SQL
1
2
3
4
5
6
7
8
9
10
11
12
SELECT Polz.ZAVOD_CODE, S_zav.ZAVOD_NAME, Polz.CEX_CODE, S_cex.CEX_NAME, Polz.GR_CODE, S_gruz.GR_NAME, Polz.TABN, Kt.FIO, Kt.DOLJ_CODE, S_dolj.DOLJ_NAME_, Polz.XF, Polz.XU, Polz.XR
FROM "KT.DBF" Kt
   INNER JOIN "POLZ.DBF" Polz
   ON  (Kt.TABN = Polz.TABN)  
   INNER JOIN "S_DOLJ.DBF" S_dolj
   ON  (S_dolj.DOLJ_CODE = Kt.DOLJ_CODE)  
   INNER JOIN "S_GRUZ.DBF" S_gruz
   ON  (S_gruz.GR_CODE = Polz.GR_CODE)  
   INNER JOIN "S_CEX.DBF" S_cex
   ON  (S_cex.CEX_CODE = Polz.CEX_CODE)  
   INNER JOIN "S_ZAV.DBF" S_zav
   ON  (S_zav.ZAVOD_CODE = Polz.ZAVOD_CODE)
Как мне добавить новое поле в DBGrid, если пишет, что DataSet не редактируема
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.05.2013, 21:43
Ответы с готовыми решениями:

Редактирование нескольких записей в DbGrid
Добрый день. Необходимо сделать проверку на совпадение текста в ячейке BDGrid'е и в Edit'е, и если они совпадают заменить в BDGrid'е на...

Поиск в нескольких dbf
Все доброго времени суток. Добавлено через 8 минут Моя процедура ищет в файле человека по ФИО, затем выдает результат в DBGrid, а...

Редактирование dbgrid
как сделать что бы по кнопке добавить выходила новая запись в dbgrid и кнопка удаления , на форме имеется adotable , adoconnection...

11
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
19.05.2013, 22:36
Добавить столбец в таблицу
0
 Аватар для gvenog
1 / 1 / 0
Регистрация: 17.04.2010
Сообщений: 55
19.05.2013, 22:48  [ТС]
ой, неправильно выразилась, не поле добавить, а новую строку в DBGrid, если у меня выбираются данные из разных таблиц
0
1408 / 572 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
20.05.2013, 01:39
накак, результат этого запроса нельзя редактировать
Или пользуйся lookup-полями,
или или делай такой запрос
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT Polz.ZAVOD_CODE, S_zav.ZAVOD_NAME, Polz.CEX_CODE, S_cex.CEX_NAME, Polz.GR_CODE, S_gruz.GR_NAME, Polz.TABN, Kt.FIO, Kt.DOLJ_CODE, S_dolj.DOLJ_NAME_, Polz.XF, Polz.XU, Polz.XR
INTO #TEMP_TABLE
FROM "KT.DBF" Kt
   INNER JOIN "POLZ.DBF" Polz
   ON  (Kt.TABN = Polz.TABN)  
   INNER JOIN "S_DOLJ.DBF" S_dolj
   ON  (S_dolj.DOLJ_CODE = Kt.DOLJ_CODE)  
   INNER JOIN "S_GRUZ.DBF" S_gruz
   ON  (S_gruz.GR_CODE = Polz.GR_CODE)  
   INNER JOIN "S_CEX.DBF" S_cex
   ON  (S_cex.CEX_CODE = Polz.CEX_CODE)  
   INNER JOIN "S_ZAV.DBF" S_zav
   ON  (S_zav.ZAVOD_CODE = Polz.ZAVOD_CODE)
В таком случае можно добавить запись, но она не сохранится в исходных таблицах.
Что потом с ней делать уже тебе решать
0
 Аватар для gvenog
1 / 1 / 0
Регистрация: 17.04.2010
Сообщений: 55
20.05.2013, 09:44  [ТС]
У меня ошибка выскакивает на INTO
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
20.05.2013, 09:48
C++
1
INSERT INTO
0
 Аватар для gvenog
1 / 1 / 0
Регистрация: 17.04.2010
Сообщений: 55
20.05.2013, 13:16  [ТС]
я делаю так:

SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
  Query1->Close();
 Query1->SQL->Clear();
  Query1->SQL->ADD("INSERT Polz.ZAVOD_CODE, S_zav.ZAVOD_NAME, Polz.CEX_CODE, S_cex.CEX_NAME, Polz.GR_CODE, S_gruz.GR_NAME, Polz.TABN, Kt.FIO, Kt.DOLJ_CODE, S_dolj.DOLJ_NAME_, Polz.XF, Polz.XU, Polz.XR");
  Query1->SQL->ADD("INTO #TEMP_TABLE");
  Query1->SQL->ADD("FROM 'KT.DBF' Kt");
  Query1->SQL->ADD("INNER JOIN 'POLZ.DBF' Polz");
  Query1->SQL->ADD("ON  (Kt.TABN = Polz.TABN)");
  Query1->SQL->ADD("INNER JOIN 'S_DOLJ.DBF' S_dolj");
  Query1->SQL->ADD("ON  (S_dolj.DOLJ_CODE = Kt.DOLJ_CODE)");
  Query1->SQL->ADD("INNER JOIN 'S_GRUZ.DBF' S_gruz");
  Query1->SQL->ADD("ON  (S_gruz.GR_CODE = Polz.GR_CODE)");
  Query1->SQL->ADD("INNER JOIN 'S_CEX.DBF' S_cex");
  Query1->SQL->ADD("ON  (S_cex.CEX_CODE = Polz.CEX_CODE)");
  Query1->SQL->ADD("INNER JOIN 'S_ZAV.DBF' S_zav");
  Query1->SQL->ADD("ON  (S_zav.ZAVOD_CODE = Polz.ZAVOD_CODE)");
  Query1->SQL->ADD("WHERE   (S_zav.ZAVOD_CODE = " + ComboBox1->Text + ")");
  Query1->SQL->ADD("AND  (Polz.CEX_CODE = " + ComboBox2->Text + ")");
  Query1->SQL->ADD("AND  (S_gruz.GR_CODE = " + ComboBox3->Text + ")");
  Query1->ExecSQL();
выдает ошибку на Polz.ZAVOD_CODE, может я неправильно пишу запрос? и как потом работать с #TEMP_TABLE?
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
20.05.2013, 13:29
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT Polz.ZAVOD_CODE, S_zav.ZAVOD_NAME, Polz.CEX_CODE, S_cex.CEX_NAME, Polz.GR_CODE, S_gruz.GR_NAME, Polz.TABN, Kt.FIO, Kt.DOLJ_CODE, S_dolj.DOLJ_NAME_, Polz.XF, Polz.XU, Polz.XR
INSERT INTO #TEMP_TABLE
FROM "KT.DBF" Kt
   INNER JOIN "POLZ.DBF" Polz
   ON  (Kt.TABN = Polz.TABN)  
   INNER JOIN "S_DOLJ.DBF" S_dolj
   ON  (S_dolj.DOLJ_CODE = Kt.DOLJ_CODE)  
   INNER JOIN "S_GRUZ.DBF" S_gruz
   ON  (S_gruz.GR_CODE = Polz.GR_CODE)  
   INNER JOIN "S_CEX.DBF" S_cex
   ON  (S_cex.CEX_CODE = Polz.CEX_CODE)  
   INNER JOIN "S_ZAV.DBF" S_zav
   ON  (S_zav.ZAVOD_CODE = Polz.ZAVOD_CODE)
0
 Аватар для gvenog
1 / 1 / 0
Регистрация: 17.04.2010
Сообщений: 55
20.05.2013, 13:33  [ТС]
Ошибка: "Invalid use of keyword. Token: INSERT. line Number: 2"
0
1408 / 572 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
20.05.2013, 16:17
Цитата Сообщение от Sasha Посмотреть сообщение
C++
1
INSERT INTO
инсерта ненужно, просто в BDE, скорй всего, не поддерживается INTO

gvenog, сделай lookup-поля. Тут больше нет вариантов
0
 Аватар для gvenog
1 / 1 / 0
Регистрация: 17.04.2010
Сообщений: 55
20.05.2013, 16:35  [ТС]
_Dimon_, допустим я сделаю lookup поля, но последние три значения: Polz.XF, Polz.XU, Polz.XR мне надо именно редактировать в Гриде, они могут принимать только два значения: "да" или "нет". нельзя ли их сделать как-то checkbox-ами?
0
 Аватар для gvenog
1 / 1 / 0
Регистрация: 17.04.2010
Сообщений: 55
01.06.2013, 16:42  [ТС]
_Dimon_, сделала
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.06.2013, 16:42
Помогаю со студенческими работами здесь

Редактирование DBGrid
Люди добрые, помогите, пожалуйста! В таблице DBGrid очень длинные записи не помещаются в ячейку. Есть ли какая-нибудь возможность...

Редактирование ячеек в DBGrid
Подскажите пожалуйста, как сделать, чтобы после редактирования данных в ячейке, изменения автоматически не фиксировались в базе данных....

Множественное редактирование в DBGrid
Объясните, пожалуйста, начинающему програмисту на С++, как осуществить множественное редактирование в DBGrid. Я написал программу для...

Редактирование записей в DBGrid
Вечер добрый. Необходимо организовать редактирование записей в таблице Access подключенную через DBGrid ADOTable & DataSource. А...

Редактирование записи выбранной в DBGrid
Добрый вечер. Отображаю данные в DBGrid таким образом переходом на другую форму void __fastcall Tfrm_oprr::N2Click(TObject *Sender)...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru