![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 11.01.2009
Сообщений: 102
|
![]()
Подскажите пожалуйста, никак не могу разобраться с функцией INSERT.
Нужно чтобы в моей БД, таблица Счета заполнялась из других таблиц и два столбца с датами с формы Scheta DataTimePicker, хочу реализовать это при помощи кнопки 'Сформировать счета' Присвоение дат описал так, не знаю на сколько верно: procedure TForm7.Button1Click(Sender: TObject); var Tmp_Dat_Vipiski: TDateTime; Tmp_Dat_Oplati: TDateTime; begin try with DataModule2.SCHETQuery do begin ParamByName('Data_Vipiski').Value := Tmp_Dat_Vipiski; ParamByName('Data_Oplati').Value := Tmp_Dat_Oplati; end; except end; end; База прилагается, не судите строго я только учусь. Заранее спасибо! |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 01.11.2007
Сообщений: 45
|
![]()
Во-первых совет на будущее: лучше делать так
ParamByName('Data_Vipiski').AsDateT ime := Tmp_Dat_Vipiski; ParamByName('Data_Oplati').AsDateTi me := Tmp_Dat_Oplati; Во-вторых, что-то я не нашел в твоей кверине, куда у тебя там передаются параметры? Код:
вообще INSERT делается так, один из способов: 1) в Query забиваешь запрос типа: INSERT INTO table1 ( col1, col2, col3 ) VALUES ( :col1,:col2, :col3 ); 2) передаешь туда параметры Query.ParamByName('Data_Vipiski').A sDateTime := Tmp_Dat_Vipiski; Query.ParamByName('Data_Oplati').As DateTime := Tmp_Dat_Oplati; 3) Query.Close; - на всякий случай 4) Query.ExecSQL; 5) Query.Close; 6) Query.Free; - если создавал динамически. |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 11.01.2009
Сообщений: 102
|
![]()
[QUOTE=NOOB;194767]Где параметры? Куда ты их хотел вставить?
Мне нужно чтобы заполнялась таблица Счета. Даты я выставляю на форме, их нужно присвоить столбцам Data_Vipiski и Data_Oplati, и Kod_Dogovora берется из таблицы Dogovor. |
![]() |
![]() |
![]() |
#4 | |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
![]() Цитата:
Код:
Последний раз редактировалось mihali4; 29.01.2009 в 00:09. |
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 11.01.2009
Сообщений: 102
|
![]()
Подскажите, нужно в SQL Builder'e (SCHETQuery) прописывать, что-то вроде этого:
INSERT INTO Abonent.Family, Abonent.Name, Abonent.Otchectvo, Tarifs.Vid_Tarifa, Schet.Date_Vipiski, Schet.Data_Oplati, Change_tarif.Price, Schet.ID_Schet FROM "Schet.DB" Schet INNER JOIN "Dogovor.DB" Dogovor ON (Schet.Kod_Dogovor = Dogovor.ID_Dogovor) INNER JOIN "Abonent.DB" Abonent ON (Abonent.ID_Abonent = Dogovor.Kod_Abonent) INNER JOIN "Tarifs.DB" Tarifs ON (Dogovor.DKod_Tarif = Tarifs.ID_Tarif) INNER JOIN "Change_Tarif.DB" Change_tarif ON (Change_tarif.Kod_Tarif = Tarifs.ID_Tarif) Если нужно, как тут присваивать значения полям? |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 01.11.2007
Сообщений: 45
|
![]()
Что-то с SQL синтаксисом у тебя... Посмотри как правильно пишутся SQL запросы для твоей СУБД. Ну например:
Код:
Последний раз редактировалось NOOB; 28.01.2009 в 22:53. |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 11.01.2009
Сообщений: 102
|
![]()
С процедурой TForm7.Button1Click(Sender: TObject);
как написал mihali4 я сделал, не работает, я так понимаю потому что нужно в SQL Builder'e (SCHETQuery) прописывать, вот в этом и вопрос нужно или нет? Я SQL только начинаю изучать, поэтому куча вопросов. Не могу найти в книгах, то что помогло бы разобраться с этим (аналогичный пример). А тот код который я отобразил формируется сам в SQL Builder'e, я там только поменял слово SELECT на INSERT INTO. Буду разбираться )) |
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 01.11.2007
Сообщений: 45
|
![]()
Короче, советую посмотреть все это дело в книжках либо "Библия Delphi" Михаила Фленова, либо в "Система программирования Delphi" Валерий Фаронов, там все доступно написано и примеры приведены.
Удачи в начинаниях ![]() |
![]() |
![]() |
![]() |
#9 | |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
![]() Цитата:
Только если вы тупо скопировали... Ну, а правильные имена полей кому лучше знать? Наверное вам. На всякий случай подправил их в полном соответствии с вашей таблицей. |
|
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 11.01.2009
Сообщений: 102
|
![]()
mihali4, извиняюсь, таблица заполняется, посмотрел через DataBase Desktop, большое спасибо!!!
Просто не отображается в DBGrid, с этим буду сейчас разбираться. А для чего вот эта строка? DataModule2.TSchet.Post; Возник другой вопрос, как лучше реализовать, оплату клиентов? Добавить к таблице Schet новое поле Oplata или нужно создавать еще одну таблицу по оплате и связать ее с таблицей счет? |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
не могу разобраться | Var17 | Общие вопросы Delphi | 6 | 27.03.2010 01:21 |
Не могу разобраться с типами | DM_bite | Помощь студентам | 6 | 11.08.2008 11:22 |
Не могу разобраться с TreeView | Seqular | Компоненты Delphi | 3 | 14.04.2007 17:37 |