![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 17.07.2007
Сообщений: 12
|
![]()
На форме имеется компонент Dbgrid, туда вносится разная инфа типа
№ Наимен. ед.изм. кол цена сумма 1. Гвозди кг. 10 1000 10000 ... 5. Кирпич шт. 1000 300 300000 .... так помимо этого Dbgrid на форме имеется остальные компоненты типа edit или мемо Думаю сохранять все при помощи query.close; query.clear; query.sql.add('insert into ...'); query,open; Имеется таблица в которую заносятся все эти поля, так вот самая загвоздка с инфой в Dbgrid. Как занести ее в базу(Interbase 6.0) одной строкой, или использовать еще одну таблицу и сделать там что-то вроде уникального идентификатора при помощи которого будут связываться эти таблицы. Или есть способ с индексами. Заранее спасибо! |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 07.07.2007
Сообщений: 1,518
|
![]()
Странно... переносить данные из грида в таблицу....
Обычно работают с таблицей и в гриде видят результат. А не наоборот. Кстати, после query.sql.add('insert into ...'); нужно не query.open, а query.ExecSQL. |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 17.07.2007
Сообщений: 12
|
![]()
В гриде с помощью кнопки заносим данные из другой таблы,в начале написано что и чего заполняем, а потом это все надо как-то сохранить.
Вот здесь-то и заключается вся проблема, как сохр. неск. записей из грида. Вот и думай использовать ли доп.табл. для самого грида или как-то выкрутится |
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 01.09.2007
Сообщений: 35
|
![]()
Может просто используя Lookup-поля нужные данные занести в какую то переменную, а потом используя параметры использовать IBUpdateSQL. Примерно так:
//если dbgrid заполняется из query1 например a:=query1Naimenovanie.value; b:=query1Kolichestvo.value; ... а потом связываем query2 для таблицы которую заполняем(если это не та же таблица, к-я в dbgrid'e и которая из query1) с каким нибудь UpdateSQL и пишем : ibquery2.close; ibquery2.open; ibquery2.insert; ibquery2PoleDlyaZapolnenia.Value:=a +b+...; ibquery2.post; |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 04.09.2007
Сообщений: 19
|
![]()
не совсем понимаю что именно нужно... т.е. само ТЗ
есть такие варианты 1. без обращения к серверу: храним гдето все данные (даже не важно где, да хоть массив какой-нибудь) потом, когда уже нужно все сохранять, циклом и INSERT INTO вставляем все данные в базу 2. сразу же после вставки делаем запрос и коммитим трансакцию 3. коммитим трансакцию, только при определенных условиях (т.е. например добавили записи и если все ОК, то коммитимся, а если нет то откат) 4. вообще не храним все поля, а храним только значения ключей из первой таблицы в массиве, а потом что-то типа Код:
|
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 23.04.2007
Сообщений: 38
|
![]()
Попробуй DBNavigator. Поставь в Гриде ReadOnly в False. потом щёлкни на плюсике, занесется в таблицу новая запись, потом занеси инфу в поля. Когда всё занесешь, нажми на галочку. Вот и всё, данные из грида занесены в базу.
|
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
сохранение нескольких излбражений в один файл.. как? | IGWI | Мультимедиа в Delphi | 7 | 18.11.2008 23:16 |
открытие нескольких файлов | valyan | Общие вопросы Delphi | 10 | 17.07.2008 20:27 |
Решение нескольких задач | ViNcHeStEr | Помощь студентам | 4 | 05.07.2008 17:57 |
Поиск нескольких записей | VenMaster | БД в Delphi | 1 | 14.06.2008 22:48 |
печать нескольких листов | checkbox | Microsoft Office Excel | 2 | 16.01.2008 00:50 |