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

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

19.05.2013, 21:43. Показов 1488. Ответов 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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru