![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Здравствуйте. В процессе изучения SQL запросов, для реализации работы с данными в Дефли 7 я столкнулся с вопросом - как непосредственно применять запросы компонента Query на практике? Я в курсе, что Query с запросом SQL надо подключать к дата соурсу и данные отобразятся в гриде. Изучил кучу мануалов о синтаксисе операторов SELECT и DML (insert, update, ...). Объясните пожалуйсто подробно что необходимо сделать (что создать? куда разместить?) что бы спомощью SQL запроса реализовать добавление данных из таблицы 1 в таблицу 2 по нажатию кномки. БД парадокс 7. Данные о таблицах у меня хранятся в DataModule в Query.
|
#2
|
|||
|
|||
![]() Вообще, можно сделать одним запросом без отображения данных.
INSERT INTO T2 (...) VALUES (SELECT ... FROM T1 WHERE ...) Первое ... - список вставляемых полей Второе ... - список выбираемых полей Третье ... - условия отбора. Этот запрос суешь в отдельный TQuery и потом у него вызываешь метод ExecSQL. Подробнее о том, как можно строить запросы см, например, здесь: www.sql.ru http://www.compdoc.ru/bd/sql/ |
#3
|
|||
|
|||
![]() INSERT INTO Prodaj (Nom_zapis_tov, koll_tov1)
VALUES ( SELECT Nom_zapis_tov, Koll_tov FROM Ychet_tov ) Подогнал к свой БД этот код - ругается на Select (Invalid use keyword) Как у Куверки вызвать метод ExecSQL? |
#4
|
|||
|
|||
![]() Посмотри на ссылках точный синтаксис для твоей БД.
|
#5
|
|||
|
|||
![]() Да синтексис понятно как написать и придумать, я привел добавление записей (оператора insert ) в качестве примера. Меня интересует другое, я не могу понять как использовать готовые запросы. Манипуляция запросами. Для выполнения запроса по нажатию кнопки необходимо создать отдельный Квери с запросом, а как дальше действовать? У меня все таблицы хранятся в Квери и везде используется простой запрос SElect * From T1.
|
#6
|
||||
|
||||
![]() Если запрос на получение результата, то Query1.Open;
Если запрос не возвращает результат, то Query1.ExecSQL; Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#7
|
|||
|
|||
![]() У меня имеется таблица Товары с полями: Код товара (перв. ключ) и Наменование
чтобы добавит в таблицу данные Код товара = 11 и НАименование = "Клавиатура" я делаю след.: Создаю кверку отдельную, пишу туда INSERT INTO Товары (Код товара, Наименование) Values ('11', 'Клавиатура') Пытаюсь активировать (свойство ACtive) Query1 - пишет мне ошибку Key Violation или иногда Can't creat cursor Создаю кнопочку , что бы запрос ативировался по нажатию кнопки - пишу в кнопке: DataMOdule2.Query1.Open; |
#8
|
||||
|
||||
![]() А код товара какого типа?
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#9
|
|||
|
|||
![]() Сначала был счетчик (+), потом изменил на Интегер, последний и всеравно ошибка связаная с ключем, если допустим хочу добавит только Name_tov
INSERT INTO Tov_postav (Name_tov) Values ('Клавиатура') Пишет ошибку Field value requiered ЧТо если ты или я тебе в аську отпишу, там все опсудим уже по ходу дела 373947235 Последний раз редактировалось goodwinrock, 30.03.2009 в 10:34. |
#10
|
||||
|
||||
![]() Вы сами себя запутали, когда у вас был счетчик вы пытались в него запихать текст, естественно это вызывало ошибку. Теперь вы переделали на Integer, но ключ записи все-равно обязательным остался и теперь от вас уже требуется самому следить за его наполнением, что вы неделаете.
Верните на родину счетчик и заполняйте поля правильными данными. Для счетчика заполнять ничего ненадо, он сам это делает. Если у вас в таблице Товары счетчик [Код товара] то вставка записи будет так: Код:
INSERT INTO Товары (Наименование) Values ('Клавиатура') Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |