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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.05.2008, 12:41   #1
Avalonix
Пользователь
 
Регистрация: 20.04.2008
Сообщений: 57
По умолчанию Занесение Данных в таблицу при помощи Query

пишу в свойство SQL компонента Query
insert into MPO(mpo_innum, mpo_kppl,mpo_kul, mpo_ndoma, mpo_nkv,
mpo_text, mpo_sum, mpo_ch, mpo_mes, mpo_god, mpo_sbor)
values(:Pinnum,:Pkppl,:Pkul,:Pndoma ,:Pnkv,:Ptext,:Psum,:Pch,:Pmes,:Pgo d,:Psbor))

На кнопку на форме вешаю код
DataModule1.QueryMPO_ins.Close;
DataModule1.QueryMPO_Ins.ParamByNam e('Pinnum').value:=strtoint(EditMPO _num.Text);
DataModule1.QueryMPO_Ins.ParamByNam e('Pkppl').value:=strtoint(DBEditMP O_kppl.Text);
DataModule1.QueryMPO_Ins.ParamByNam e('Pkul').value:=strtoint(DBEditMPO _kul.Text);
DataModule1.QueryMPO_Ins.ParamByNam e('Pndoma').value:=DBEditMPO_ndoma. Text;
DataModule1.QueryMPO_Ins.ParamByNam e('Pnkv').value:=strtoint(DBEditMPO _nkv.Text);
DataModule1.QueryMPO_Ins.ParamByNam e('Ptext').value:=DBMemoMPO_text.Te xt;
DataModule1.QueryMPO_Ins.ParamByNam e('Psum').value:=strtofloat(DBEditM PO_sum.Text);
DataModule1.QueryMPO_Ins.ParamByNam e('Pch').value:=strtoint(EditMPO_ch .Text);
DataModule1.QueryMPO_Ins.ParamByNam e('Pmes').value:=strtoint(EditMPO_m es.Text);
DataModule1.QueryMPO_Ins.ParamByNam e('Pgod').value:=strtoint(EditMPO_g od.Text);
DataModule1.QueryMPO_Ins.ParamByNam e('Psbor').value:=strtofloat(DBEdit MPO_sbor.Text);
DataModule1.QueryMPO_ins.Open;

вылетает ошибка:
project *** raised exceptions class EDBEngineError with message 'Invalid usage keyword' Token

Таким способом вообще можно данные в базу кидать?
Avalonix вне форума Ответить с цитированием
Старый 28.05.2008, 13:00   #2
dron-s
Форумчанин
 
Регистрация: 04.03.2007
Сообщений: 615
По умолчанию

1) сам запрос пиши в коде
2) где у тебя ParseSql, для того чтобы у тебя определились параметры?
3) для insert into используется не Open а ExecSQL!!!
dron-s вне форума Ответить с цитированием
Старый 28.05.2008, 13:08   #3
Avalonix
Пользователь
 
Регистрация: 20.04.2008
Сообщений: 57
По умолчанию

Цитата:
Сообщение от dron-s Посмотреть сообщение
1) сам запрос пиши в коде
2) где у тебя ParseSql, для того чтобы у тебя определились параметры?
3) для insert into используется не Open а ExecSQL!!!
Как запрос в коде писать? синтаксиса не знаю.
что такое ParseSql тоже не знаю.
Сделал ExecSQL. Та же ошибка
Avalonix вне форума Ответить с цитированием
Старый 28.05.2008, 13:11   #4
dron-s
Форумчанин
 
Регистрация: 04.03.2007
Сообщений: 615
По умолчанию

Цитата:
Как запрос в коде писать? синтаксиса не знаю.
что такое ParseSql тоже не знаю.
почитай мою подпись!
ам подробно всё расписано!
dron-s вне форума Ответить с цитированием
Старый 29.05.2008, 12:38   #5
Avalonix
Пользователь
 
Регистрация: 20.04.2008
Сообщений: 57
По умолчанию

написал вот так:
Код:
DataModule1.QueryMPO_ins.Close;
DataModule1.QueryMPO_Ins.SQL:='insert into mpo values ('+EditMPO_num.Text +', '+DBEditMPO_kppl.Text +', '+DBEditMPO_kul.Text +', '+DBEditMPO_ndoma.Text +', '+DBEditMPO_nkv.Text +', '+DBMemoMPO_text.Text +', '+DBEditMPO_sum.Text +', '+EditMPO_ch.Text +', '+EditMPO_mes.Text +', '+EditMPO_god.Text +', '+DBEditMPO_sbor.Text+')';
DataModule1.QueryMPO_ins.ExecSQL;
выдает ошибку
incompatible types

видимо что то не дописал в конце. Подскажите чего не хватает
Avalonix вне форума Ответить с цитированием
Старый 29.05.2008, 12:44   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
выдает ошибку
Есссно.
Код:
DataModule1.QueryMPO_Ins.SQL.add('insert into mpo values...')
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.05.2008, 12:50   #7
dron-s
Форумчанин
 
Регистрация: 04.03.2007
Сообщений: 615
По умолчанию

Avalonix
параметры для чего существуют????
ведь ты же первый раз нчинал всё правильно
надо было только малость подправить!
dron-s вне форума Ответить с цитированием
Старый 29.05.2008, 13:24   #8
Avalonix
Пользователь
 
Регистрация: 20.04.2008
Сообщений: 57
По умолчанию

Так аналогично, и быстрее. Хотя не так красиво как параметры.
И кстати что через параметры, что так вылазит ошибка БДЕдвижка с сообщением , причем разными... Нодо мной издеваются. 4 запуска и 4 разных сообщения : неправильное ключевое слово, отсутствует запятая, употребление столбца здесь недопустимо, слишкос много значений... Причем на кахдый новый запуск вылазит своя ошибка.
То есть ошибка проявляется не при запуске приложения а при нажатии на кнопку добавить в базу
Караул!
Всего лишь надо то собрать инф с полей формы и кинуть в базу

Косяки нашел. сейчас разгребу посмотрим

Ошибка ДБЕдвижка "слишком много значений" и хоть убейся...

Последний раз редактировалось Alex21; 29.05.2008 в 15:24.
Avalonix вне форума Ответить с цитированием
Старый 29.05.2008, 17:10   #9
Avalonix
Пользователь
 
Регистрация: 20.04.2008
Сообщений: 57
По умолчанию

Хорошо. Уговорили.

сделал снова на параметрах:
скрипт в квери
Код:
insert into MPO(mpo_innum, mpo_kppl,mpo_kul, mpo_ndoma, mpo_nkv, 
mpo_text, mpo_sum, mpo_ch, mpo_mes, mpo_god, mpo_sbor)
values(:Pinnum, :Pkppl, :Pkul, :Pndoma, :Pnkv, :Ptext, :Psum, :Pch, :Pmes, :Pgod, :Psbor))
В приложении:
Код:
procedure TFormMPO.ButtonMPOOKClick(Sender: TObject);
begin
DataModule1.QueryMPO_ins.Close;
DataModule1.QueryMPO_Ins.ParamByName('Pinnum').value:=EditMPO_num.Text;
DataModule1.QueryMPO_Ins.ParamByName('Pkppl').value:=DBEditMPO_kppl.Text;
DataModule1.QueryMPO_Ins.ParamByName('Pkul').value:=DBEditMPO_kul.Text;
DataModule1.QueryMPO_Ins.ParamByName('Pndoma').value:=EditMPO_ndoma.Text;
DataModule1.QueryMPO_Ins.ParamByName('Pnkv').value:=EditMPO_nkv.Text;
DataModule1.QueryMPO_Ins.ParamByName('Ptext').value:=EditMPO_text.Text;
DataModule1.QueryMPO_Ins.ParamByName('Psum').value:=EditMPO_sum.Text;
DataModule1.QueryMPO_Ins.ParamByName('Pch').value:=EditMPO_ch.Text;
DataModule1.QueryMPO_Ins.ParamByName('Pmes').value:=EditMPO_mes.Text;
DataModule1.QueryMPO_Ins.ParamByName('Pgod').value:=EditMPO_god.Text;
DataModule1.QueryMPO_Ins.ParamByName('Psbor').value:=EditMPO_sbor.Text;
DataModule1.QueryMPO_ins.ExecSQL;
FormMPO.Close;  (ТУТ пишет неверное завершение SQL предложения)

end;
Чего не хватает?? Помогите пожалуйста!!
Avalonix вне форума Ответить с цитированием
Старый 29.05.2008, 20:13   #10
dron-s
Форумчанин
 
Регистрация: 04.03.2007
Сообщений: 615
По умолчанию

вот тебе элементарный пример
попробуй разобраться
Код:
  with IEditTarif do
    begin
      sql.Clear;
      sql.Add('update tarif set hot_water = :tarif;');
      params.ParseSQL(sql.Text,true);
      parambyname('tarif').AsFloat := StrToFloat(seHot_water.Text);
      execsql;
      close;
    end;
dron-s вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
копирование данных из таблицы в таблицу Sack Microsoft Office Access 1 16.09.2008 05:59
Занесение данных в зависимости от даты gavrylyuk Microsoft Office Excel 2 31.07.2008 12:19
занесение данных в таблицу ASAN Microsoft Office Excel 7 02.06.2008 23:50
Занесение данных в переменную jora-objora Помощь студентам 2 05.01.2008 20:12