![]() |
|
|
![]()
|
|
| tawenka |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 3.1.2015 Репутация: нет Всего: нет |
Доброго времени суток, уважаемые форумчане.
Подскажите, пожалуйста, что не так в SQL-запросе? Добавляю в БД (Paradox+BDE) новую запись с использованием DBEdit и DBLookupCombobox, создаю код fDM.DataModule1.Query1.Close; fDM.DataModule1.Query1.SQL.Clear; fDM.DataModule1.Query1.insert into FIO2 values ('DBEdit1.text','DBEdit2.text','DBEdit3.text'); программа выдает ошибку: Missing operator or semicolon. Как сделать правильно? Спасибо за внимание. |
|||
|
||||
| ТоляМБА |
|
||||||
![]() Котэ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1607 Регистрация: 15.12.2004 Репутация: 3 Всего: 252 |
это если будешь передовать числовые значения, для передачи символьных значений оборачивай соответствующий DBEditx.Text в QuotedStr, например в первом эдите ты передаешь string, в остальных двух integer, тогда пишем:
|
||||||
|
|||||||
| tawenka |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 3.1.2015 Репутация: нет Всего: нет |
Спасибо огромное за помощь.
Теперь я поняла, как правильно писать запрос на вставку, но выходят другие ошибки. Помогите, пожалуйста. Вкратце то, что мне надо сделать: на главной форме – DBGrid, в котором с помощью SQL-запроса отображены данные из нескольких таблиц, поэтому, чтобы добавить новые данные в БД, я создала новую форму. На главной форме находится Button «Добавить сотрудника», там я написала код fDM.DataModule1.Query1.Append; fDM.DataModule1.Query5.Append; Form5.ShowModal; если на обработчик кнопки «добавить» главной формы вставляю еще строку fDM.DataModule1.Query6.Append;, а она нужна, т.к. данные добавляются через Query1, 5, 6, то выходит ошибка - cannot modify a read-only dataset . Для проверки работоспособности остальной части программы убираю запись fDM.DataModule1.Query6.Append;, программа запускается, ввожу данные (правда, не вводятся записи там, где не открыт Query6), а когда нажимаю на кнопку «Сохранить и закрыть» - выскакивает ошибка - Invalid use of keyword. Token: Pib Line Number: 1' Код на вставку новой записи таков: fDM.DataModule1.Query1.Close; fDM.DataModule1.Query1.SQL.Clear; fDM.DataModule1.Query1.SQL.Text:='insert into FIO2 (Fam, TabN, Tel) values ('+QuotedStr(DBEdit1.Text)+','+DBEdit2.Text+','+DBEdit3.Text+')'; fDM.DataModule1.Query1.ExecSQL; Close; И так же на Query5 и 6. Что я делаю не так? Присоединённый файл ( Кол-во скачиваний: 3 )
Без_имени_2.doc 17,50 Kb |
|||
|
||||
| ТоляМБА |
|
|||
![]() Котэ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1607 Регистрация: 15.12.2004 Репутация: 3 Всего: 252 |
Ты это переводить на русский пробовала?
fDM.DataModule1.Query6.SQL.Text - в студию!
Чтобы больше не наступать на такие грабли всегда смотри типы полей в табле в которую делаешь вставку - в строчные вставляй строчные типы делфи, в числовые вставляй числовые (только не вставляй дробные типы делфи в целые типы БД). Это сообщение отредактировал(а) ТоляМБА - 9.1.2015, 09:18 |
|||
|
||||
| tawenka |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 3.1.2015 Репутация: нет Всего: нет |
Сегодня ни одной ошибки я не исправила.
cannot modify a read-only dataset - это, я так понимаю, означает, что Query6 находится в режиме чтения, но ReguestLive у него стоит True, что это может быть еще? А по поводу типов полей в таблице - если в DataBase Desktop поля - Alpha, значит, значение - строковое? Я в код SQL поставила для всех Edit '+QuotedStr(DBEdit1.Text)+', но ошибка - Invalid use of keyword. Token: Pib Line Number: 1' - осталась, или еще выходит key violation при нажатии на кнопку "Сохранить". fDM.DataModule1.Query1.Close; fDM.DataModule1.Query1.SQL.Clear; fDM.DataModule1.Query1.SQL.Text:='insert into FIO2 (Fam, TabN, Tel) values ('+QuotedStr(DBEdit1.Text)+','+QuotedStr(DBEdit2.Text)+','+QuotedStr(DBEdit3.Text)+')'; fDM.DataModule1.Query1.ExecSQL; Что я делаю не так? Можно еще спросить - а как правильно написать запрос, чтобы после выполнения команды на добавление записи квери возвращался к тому запросу, что прописан у него в инспекторе объектов? Спасибо за помощь. |
|||
|
||||
| ТоляМБА |
|
|||
![]() Котэ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1607 Регистрация: 15.12.2004 Репутация: 3 Всего: 252 |
||||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |