Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вставка записи в бд [D7, IB6.x]


Страницы:   1 2

Staraya ©   (2003-03-16 21:42:00) 

Здравствуйте! Я совсем недавно начала изучать программирование бд клиент-сервер. Мне нужно вставить запись в таблицу. На форме располагаются компоненты DataSourse1, dataBase1,query1,edit1,edit2 и кнопочка "Записать".Для того чтоб вставить запись я должна написать в свойстве sql компонента query1 "insert into Имя_Табл...values(список знач)". Я одного не пойму, зачем такие сложности, обычный юзер не знает язык sql, он должен их вводить в поля edit1,edit2. А как это реализовать я не могу разобраться. Может кому-то этот вопрос покажется не достойным внимания, но очень прошу помочь.


zacho   (2003-03-17 17:02:00) [1]


> Staraya (17.03.03 15:09)

Нет,ничего специально делать не нужно, просто в палитре компонентов посмотри закладу Interbase.
Конечно, это зависит от версии Дельфи. В Enterprise точно должно быть, в Personal-нет :-).


myor   (2003-03-17 16:41:00) [2]

жизнь вообще странная штука...


Соловьев   (2003-03-17 16:41:00) [3]

там у Query есть свойство Params - заходи туда и смотри какие у тебя параметры. Там же можно настроить: задать значения и вид.


Staraya   (2003-03-17 16:36:00) [4]

> myor
Я только что проверила, ввела несколько записей, все работает! И именно тогда, когда имя параметра "pKol_vo", а не "kol_vo", хотя в книжке написано, что первый вариант неправильный, странно


Соловьев   (2003-03-17 16:30:00) [5]


> Insert into table(invert, kol_vo)

:)


myor   (2003-03-17 16:25:00) [6]

2 Staraya (17.03.03 16:15)

ParamByName("pInvert").AsString{?} := Edit1.Text;
ParamByName(" pInvert").AsString{?} := Edit 1.Text;
и
ParamByName("pInvert").AsString{?} := Edit1.Text;
ParamByName( "pkol_vo").AsString{?} := Edit 2.Text;

как вставка, работает?


Staraya   (2003-03-17 16:15:00) [7]

> myor
Я нашла только одну ошибку:
ParamByName("pInvert").AsString{?} := Edit1.Text;
ParamByName("pkol_vo").AsString{?} := Edit2.Text;
В данном примере параметр определяется своим именем в тексте запроса(Invert, kol_vo), но не именем в свойстве Name инспектора объектов(pInvert, pKol_vo). А есть еще ошибки?


myor   (2003-03-17 15:55:00) [8]

Соловьев © (17.03.03 15:47)
оригинальная интерпретация принципа "на ошибках учатся". лично мне нравится, но это- на любителя. самому приходилось учитьмся на очепятках в книгах. надо бы ввести этот метод обучение в широкое пользование.
ничто так не стимулирует обучение (познание), как непонимание.


Соловьев   (2003-03-17 15:47:00) [9]


> myor © (17.03.03 15:43)

Ошибки сделаны специально, чтобы человек хоть чуть -чуть сам подумал:)))


myor   (2003-03-17 15:43:00) [10]

Staraya (17.03.03 15:09
зачем ibx?
см. Соловьев © (17.03.03 14:38), только там ошибочка:

Query1.SQL:
Insert into table(invert, kol_vo)
values(:pInvert, : pKol_vo)

В проге на событие BtnClick:
...
with Query1 do
begin
Close;
ParamByName("pInvert").AsString{?} := Edit1.Text;
ParamByName(" pkol_vo").AsString{?} := Edit 2.Text;
if not Prepared then Prepare;
ExecSQL;
end;
Transaction.CommitReteaning;
...


используемые компоненты: query и transaction.


Staraya   (2003-03-17 15:09:00) [11]

> zacho
Чтобы мне использовать IBX, я должна создать New Package в среде Delphi и инсталлировать компоненты IBX? Или как-то по-другому?Только не понятно где я должна их взять. У меня на компе есть папка Demos\db\ibx, но я не уверена, что это то, что мне нужно.


Staraya   (2003-03-17 14:59:00) [12]

> Соловьев
Спасибо за подробное объяснение и помощь


Соловьев   (2003-03-17 14:38:00) [13]


> я никак не могу реализовать, чтобы вводимые данные записывались
> в таблицу detal

Query1.SQL:
Insert into table(invert, kol_vo)
values(:pInvert, : pKol_vo)

В проге на событие BtnClick:
...
with Query1 do
begin
Close;
ParamByName("pInvert").AsString{?} := Edit1.Text;
ParamByName("pInvert").AsString{?} := Edit1.Text;
if not Prepared then Prepare;
ExecSQL;
end;
Transaction.CommitReteaning;
...


Staraya   (2003-03-17 14:29:00) [14]

У меня в программе должен быть документ "Поступление материалов". Пользователь вводит в поля edit1,edit2 значения, которые соответствуют полям "invent"и "kol_vo"в таблице detal удаленной базы, а потом нажимает на кнопочку "Записать".Так вот, я никак не могу реализовать, чтобы вводимые данные записывались в таблицу detal. Уже совсем запуталась. Подскажите пожалуйста оптимальное решение


myor   (2003-03-17 14:12:00) [15]

да ради бога, вариантов куча. можно хоть через table1.appendrecord([edit1.text, edit2.text]).


zacho   (2003-03-17 14:06:00) [16]


> myor © (17.03.03 13:59)
> или, имеется в виду, вставка одной записи за одиу операцию
> insert?

Ага. Насколько я понял, исходный вопрос касался все-таки одной записи, а не нескольких сразу.


myor   (2003-03-17 13:59:00) [17]

zacho © (17.03.03 13:54)
а где сказано, что запись одна?
имхо, для одной записи, таблица (бд)- явное излишество. :)
или, имеется в виду, вставка одной записи за одиу операцию insert?


MsGuns   (2003-03-17 13:57:00) [18]

>Johnmen © (17.03.03 13:36
>Возражаю ! :) Но помогать буду, если смогу... :))))

Звонок в дверь к молодоженам. Открывают оба.
Стоит мужик и говорит:
- Создается клуб группового секса. Если не против, я вас туда запишу.
Молодые переглянулись и промолчали.
- Хорошо, я вас записываю.
Тут молодой муж :
- А сколько человек в этом клубе ?
- Пока трое: вы двое и я.
- Тогда я против !
- Ладно, тебя вычеркиваю !




zacho   (2003-03-17 13:54:00) [19]


> myor © (17.03.03 13:50)

IMHO, для вставки одной записи в таблицу, ХП - явное излишество.
Да и не дает никаких преимуществ перед тем же самым INSERT в TIBSql

> Johnmen © (17.03.03 13:36)

Я проверял, работает :-)


MsGuns   (2003-03-17 13:53:00) [20]

>Johnmen © (17.03.03 13:36
>Возражаю ! :) Но помогать буду, если смогу... :))))

Звонок в дверь к молодоженам. Открывают оба.
Стоит мужик и говорит:
- Создается клуб группового секса. Если не против, я вас туда запишу.
Молодые переглянулись и промолчали.
- Хорошо, я вас записываю.
Тут молодой муж :
- А сколько человек в этом клубе ?
- Пока трое: вы двое и я.
- Тогда я против !
- Ладно, тебя вычеркиваю !




Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо