| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Базы данных и репортинг > AdoDataSet - работа с БД |
| Автор: Гость_Maverick 3.11.2004, 10:10 |
| Всем привет! Как с помощью ADODataSet работать напрямую с БД(MSSQL 2000)? Интересует добавление, редактирование, удаление данных с помощью ADODataSet |
| Автор: Medved 3.11.2004, 12:19 |
| Да собственно ничего сложного нет, просто исследуйте все методы и свойства этого компонента. Все очень просто. Но я лучше бы Вам порекомендовал для манипуляции с данными использовать хранимые процедуры. Полезность этого подхода обсуждалась уже не раз, да и вы в процессе работы сами придете к этому. |
| Автор: Guest 3.11.2004, 13:14 |
| Как раз все время работал с ХП. Вот решил разобраться как напрямую через ADODataSet. Просто иногда лучше на прямую сделать манипуляции с данными |
| Автор: Guest 4.11.2004, 06:28 |
| Так ни кто и неподскажет? |
| Автор: Vit 4.11.2004, 07:00 |
| Выполнением запросов SQL |
| Автор: Гость_Maverick 4.11.2004, 07:29 |
| >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 5.11.2004, 07:31 | ||
| Нет никакой такой прямой работы с MS SQL Server, так как этот сервер общается с миром только и исключительно посредством SQL. Чего бы вы не делали, каким бы доступом, протоколом, хоть через RPC - один хрен - на сервер тем или иным способом будет передан именно SQL запрос, а в ответ SQL сервер вернёт результат. Всё! Другого не дано. Даже родной Query Analyzer общается только через SQL... Добавлено @ 07:38
Хех... Реально ни один компонент не будет работать с MS SQL Server как Table, любые манипуляции которые вы проведёте будут сведены к выполнению SQL запросов. Вы можете лишь имитировать поведение как таблицы, при этом проиграете в скорости и заставите сервер использовать неоптимальные блокировки, и всё равно реально на сервер будет передана серия SQL запросов. А присвоение значений полей из визуальных DB компонентов - это вообще ни в какие ворота не лезет... Давайте сначала, что именно надо сделать в конечном счёте... Так как то куды вы двигаетесь будет работать только в тепличных условиях, при нескольких клиентах и хоть чуть чуть больших таблицах вы просто такими манипуляциями посадите сервер, он захлебнётся и будет умирать - простейшие вещи будут исполняться ну очень медленно... |
| Автор: Guest 5.11.2004, 15:01 | ||
Это я в курсе, что 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 5.11.2004, 17:44 | ||
|