Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.01.2014, 19:22   #1
kuzmich
Форумчанин
 
Аватар для kuzmich
 
Регистрация: 05.05.2007
Сообщений: 236
Вопрос добавление записи в БД

привет всем!
написал код для добавлении записей в БД и у меня выводит ошибку при компиляции. вот сам код.
Код:
 DataModule1.Query8.Close;
 DataModule1.Query8.SQL.Text:=
   'insert into sklad_obuv (id, sezon, nomer, '+
   'opisanie, firm, cena1, datapr)'+
   'values ('+quotedstr(edit1.Text)+', '+combobox1.text+', //ошибка тут
            '+quotedstr(edit3.text)+', '+edit4.text+', '+combobox2.text+',
            '+quotedstr(edit5.text)+', '+quotedstr(edit6.text)+')';
 datamodul1.query8.execsql;

 datamodul1.query1.close;
 datamodul1.query1.sql.clear;
 datamodul1.query1.sql.add('select * from sklad_obuv');
 datamodul1.query1.open;
может подскажите?
kuzmich вне форума Ответить с цитированием
Старый 10.01.2014, 22:36   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

в Паскаль/Delphi НЕЛЬЗЯ разрывать строковую константу (начало оставлять на одной строке кода, а окончание ПЕРЕНОСИТЬ!

пробуйте так:
Код:
 DataModule1.Query8.SQL.Text:=
   'insert into sklad_obuv (id, sezon, nomer, '+
   'opisanie, firm, cena1, datapr)'+
   'values ('+quotedstr(edit1.Text)+', '+combobox1.text+', '+
    quotedstr(edit3.text)+', '+edit4.text+', '+combobox2.text+', '+
    quotedstr(edit5.text)+', '+quotedstr(edit6.text)+')';
 datamodul1.query8.execsql;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 10.01.2014, 22:40   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
//ошибка тут
Не удивительно. Ковычка не закрыта:
Код:
 DataModule1.Query8.SQL.Text:=
   'insert into sklad_obuv (id, sezon, nomer, '+
   'opisanie, firm, cena1, datapr)'+
   'values ('+quotedstr(edit1.Text)+', '+combobox1.text+', '
               +quotedstr(edit3.text)+', '+edit4.text+', '+combobox2.text+','
               +quotedstr(edit5.text)+', '+quotedstr(edit6.text)+')';
Нельзя в Паскале строки разрывать в исходнике переносом строк.
Цитата:
Serge_Bliznykov
Ну вот ) Теперь ты обогнал. Мы квиты (прошу читать это слово не по Украински)
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.01.2014, 15:54   #4
kuzmich
Форумчанин
 
Аватар для kuzmich
 
Регистрация: 05.05.2007
Сообщений: 236
Вопрос

Цитата:
Сообщение от Stilet Посмотреть сообщение
Не удивительно. Ковычка не закрыта:
Код:
 DataModule1.Query8.SQL.Text:=
   'insert into sklad_obuv (id, sezon, nomer, '+
   'opisanie, firm, cena1, datapr)'+
   'values ('+quotedstr(edit1.Text)+', '+combobox1.text+', '
               +quotedstr(edit3.text)+', '+edit4.text+', '+combobox2.text+','
               +quotedstr(edit5.text)+', '+quotedstr(edit6.text)+')';
Нельзя в Паскале строки разрывать в исходнике переносом строк.

Ну вот ) Теперь ты обогнал. Мы квиты (прошу читать это слово не по Украински)
сделал как вы и говорили, спасибо - помогло! но теперь при добавление записи выдает ошибку на Query1 где прописана сама база!

Код:
 DataModule1.Query8.Close;
 DataModule1.Query8.SQL.Text:=
   'insert into sklad_obuv (id, sezon, nomer, '+
   'opisanie, firm, cena1, datapr)'+
   'values ('+quotedstr(edit1.Text)+', '+combobox1.text+', '
               +quotedstr(edit3.text)+', '+edit4.text+', '+combobox2.text+','
               +quotedstr(edit5.text)+', '+quotedstr(edit6.text)+')';
 datamodule1.query8.execsql;

 datamodule1.query1.close; //тут! на закрытие Query
 datamodule1.query1.sql.clear;
 datamodule1.query1.sql.add('select * from sklad_obuv');
 datamodule1.query1.open;
kuzmich вне форума Ответить с цитированием
Старый 11.01.2014, 18:21   #5
0parol0lorap0
Пользователь
 
Регистрация: 05.10.2013
Сообщений: 13
По умолчанию

Можешь выложить исходник ?
0parol0lorap0 вне форума Ответить с цитированием
Старый 11.01.2014, 18:55   #6
kuzmich
Форумчанин
 
Аватар для kuzmich
 
Регистрация: 05.05.2007
Сообщений: 236
Вопрос

Цитата:
Сообщение от 0parol0lorap0 Посмотреть сообщение
Можешь выложить исходник ?
исходник -> тут , вторая форма
Вложения
Тип файла: rar База Данных.rar (394.5 Кб, 11 просмотров)
kuzmich вне форума Ответить с цитированием
Старый 11.01.2014, 18:57   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

весьма и весьма странно!
насколько я вижу, query1 вообще никак не связано с query8!

Какая конкретно ошибка? (скриншот в студию!)

раз у меня нет разумных советов, то попробую помочь локализовать проблему..

1) попробуйте закрыть query1 ДО работы с Query8. Проверьте, повторяется ли ошибка.

если повторяется, то
2) закомментируйте ВЕСЬ код с Query8 (чтобы убедится, влият ли он на ошибку), запустите программу. Проверьте.

Если не удалось вылечить - пишите детали, будем совместными усилиями решать вашу проблему!



ps. когда я писал свой ответ, ещё не видел выложенный исходник... возможно, что по коду станет чуть понятнее, в чём трабл...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.01.2014, 19:01   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
//тут! на закрытие Query
Скорее всего тут
Код:
datamodule1.query8.execsql;
и дословно текст сообщения об ошибке. Вот например поле цена, почему значение для него закавычено, ткстовый тип что-ли?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 11.01.2014 в 19:06.
Аватар вне форума Ответить с цитированием
Старый 11.01.2014, 19:14   #9
kuzmich
Форумчанин
 
Аватар для kuzmich
 
Регистрация: 05.05.2007
Сообщений: 236
Вопрос

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
весьма и весьма странно!
насколько я вижу, query1 вообще никак не связано с query8!

Какая конкретно ошибка? (скриншот в студию!)

раз у меня нет разумных советов, то попробую помочь локализовать проблему..

1) попробуйте закрыть query1 ДО работы с Query8. Проверьте, повторяется ли ошибка.

если повторяется, то
2) закомментируйте ВЕСЬ код с Query8 (чтобы убедится, влият ли он на ошибку), запустите программу. Проверьте.

Если не удалось вылечить - пишите детали, будем совместными усилиями решать вашу проблему!



ps. когда я писал свой ответ, ещё не видел выложенный исходник... возможно, что по коду станет чуть понятнее, в чём трабл...
вот сама ошибка!
1) закрыл я Query1 до Query8 как вы и говорили - все равно таже ошибка.
2) закомментировал я весь код с Query8 и ошибки нет никакой.

Query8 - у меня используется для SQL запросов. Query8 используется в 4 - ой и в 5 - ой форме, и все работает!

по поводу даты - при создание таблицы я в datapr указал значение date. можете сами глянуть код на первой форме
Изображения
Тип файла: jpg token 2014.JPG (15.5 Кб, 69 просмотров)
kuzmich вне форума Ответить с цитированием
Старый 11.01.2014, 20:00   #10
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Ошибка не там, а в запросе на вставку. Смотрим структуру таблицы
Код:
    ADOQuery1id: TIntegerField;
    ADOQuery1sezon: TWideStringField;
    ADOQuery1nomer: TIntegerField;
    ADOQuery1opisanie: TWideStringField;
    ADOQuery1firm: TWideStringField;
    ADOQuery1cena1: TIntegerField;
    ADOQuery1datapr: TIntegerField;
И запрос на вставку. Какие кавычки для числовых полей id, nomer, cena1 и datapr? И наоборот - их отсутствие для строковых полей?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
добавление записи в БД kuzmich БД в Delphi 2 13.12.2013 14:07
добавление записи незнайка_на_земле Помощь студентам 6 26.10.2011 08:26
Добавление записи в бд Lokos БД в Delphi 8 15.12.2009 16:36
Добавление записи gitzzz Microsoft Office Access 2 23.06.2009 19:30
Добавление записи.... Droid БД в Delphi 2 04.06.2008 15:50