![]() |
|
|
![]()
|
|
| Гость_Maverick |
|
|||
|
Unregistered |
Всем привет!
Как с помощью ADODataSet работать напрямую с БД(MSSQL 2000)? Интересует добавление, редактирование, удаление данных с помощью ADODataSet |
|||
|
||||
| Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 1 Всего: 154 |
Да собственно ничего сложного нет, просто исследуйте все методы и свойства этого компонента. Все очень просто.
Но я лучше бы Вам порекомендовал для манипуляции с данными использовать хранимые процедуры. Полезность этого подхода обсуждалась уже не раз, да и вы в процессе работы сами придете к этому. -------------------- |
|||
|
||||
| Guest |
|
|||
|
Unregistered |
Как раз все время работал с ХП.
Вот решил разобраться как напрямую через ADODataSet. Просто иногда лучше на прямую сделать манипуляции с данными |
|||
|
||||
| Guest |
|
|||
|
Unregistered |
Так ни кто и неподскажет?
|
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 14 Всего: 207 |
Выполнением запросов SQL
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| Гость_Maverick |
|
|||
|
Unregistered |
>Vit
Меня больше интересует как напрямую работать. Через SQL я в курсах как это делается. короче, хочу использовать ADODataSet как "ADOTable". Задача: на форме, к примеру, два DBEdit и один DBLookupCombobox DBLookupCombobox - это справочник другой таблицы, из которого я выбераю KeyValue записи. теперь данные хочу эти данные вставить в БД через AdoDataSet по нажатию на кнопку "Сохранить". что-то типа такого: with DataModuleArm.ADODataSetStaff do begin Insert; FieldByName('TabNum').Value := DBEditEhTabNum.Text; FieldByName('LastName').Value := DBEditEhLast.Text; FieldByName('Id_CatStaff').Value := DBLookupComboboxEhDepartment.KeyValue; Post; end; Только данный пример не работает! |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 14 Всего: 207 |
Нет никакой такой прямой работы с MS SQL Server, так как этот сервер общается с миром только и исключительно посредством SQL. Чего бы вы не делали, каким бы доступом, протоколом, хоть через RPC - один хрен - на сервер тем или иным способом будет передан именно SQL запрос, а в ответ SQL сервер вернёт результат. Всё! Другого не дано. Даже родной Query Analyzer общается только через SQL...
Добавлено @ 07:38
Хех... Реально ни один компонент не будет работать с MS SQL Server как Table, любые манипуляции которые вы проведёте будут сведены к выполнению SQL запросов. Вы можете лишь имитировать поведение как таблицы, при этом проиграете в скорости и заставите сервер использовать неоптимальные блокировки, и всё равно реально на сервер будет передана серия SQL запросов. А присвоение значений полей из визуальных DB компонентов - это вообще ни в какие ворота не лезет... Давайте сначала, что именно надо сделать в конечном счёте... Так как то куды вы двигаетесь будет работать только в тепличных условиях, при нескольких клиентах и хоть чуть чуть больших таблицах вы просто такими манипуляциями посадите сервер, он захлебнётся и будет умирать - простейшие вещи будут исполняться ну очень медленно... -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| Guest |
|
|||
|
Unregistered |
Это я в курсе, что ADO все переведет в запросы. Как разная напрямую я или нет присваеваю значение? К примеру вот так: with DataModuleMashteh.ADOStoredProcOrg do begin Close; Parameters.ParamByName('@OrganizShortName').Value := DBEditNameShort.Text; Parameters.ParamByName('@OrganizName').Value := DBEditNameOrg.Text; Parameters.ParamByName('@OrganizINN').Value := DBEditOrganizINN.Text; Parameters.ParamByName('@ERR').Value := 1; Prepared; ExecProc; И все великолепно работает. |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 14 Всего: 207 |
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
![]()
|
| Правила форума "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. |