Поиск:

Ответ в темуСоздание новой темы Создание опроса
> AdoDataSet - работа с БД, редактирование, добавление 
:(
    Опции темы
Гость_Maverick
Дата 3.11.2004, 10:10 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Всем привет!
Как с помощью ADODataSet работать напрямую с БД(MSSQL 2000)?
Интересует добавление, редактирование, удаление данных с помощью ADODataSet
  Вверх
Medved
Дата 3.11.2004, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

Репутация: 1
Всего: 154



Да собственно ничего сложного нет, просто исследуйте все методы и свойства этого компонента. Все очень просто.
Но я лучше бы Вам порекомендовал для манипуляции с данными использовать хранимые процедуры. Полезность этого подхода обсуждалась уже не раз, да и вы в процессе работы сами придете к этому.


--------------------
http://extreme.sport-express.ru/
...и неважно сколько падал, важно сколько ты вставал...
PM MAIL WWW ICQ Skype GTalk   Вверх
Guest
Дата 3.11.2004, 13:14 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Как раз все время работал с ХП.
Вот решил разобраться как напрямую через ADODataSet.
Просто иногда лучше на прямую сделать манипуляции с данными
  Вверх
Guest
Дата 4.11.2004, 06:28 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Так ни кто и неподскажет?
  Вверх
Vit
Дата 4.11.2004, 07:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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
PM MAIL WWW ICQ   Вверх
Гость_Maverick
Дата 4.11.2004, 07:29 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


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
Дата 5.11.2004, 07:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 14
Всего: 207



Нет никакой такой прямой работы с MS SQL Server, так как этот сервер общается с миром только и исключительно посредством SQL. Чего бы вы не делали, каким бы доступом, протоколом, хоть через RPC - один хрен - на сервер тем или иным способом будет передан именно SQL запрос, а в ответ SQL сервер вернёт результат. Всё! Другого не дано. Даже родной Query Analyzer общается только через SQL...
Добавлено @ 07:38
Цитата
короче, хочу использовать ADODataSet как "ADOTable".


Хех... Реально ни один компонент не будет работать с 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
PM MAIL WWW ICQ   Вверх
Guest
Дата 5.11.2004, 15:01 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(Vit @ 5.11.2004, 07:31)
А присвоение значений полей из визуальных DB компонентов - это вообще ни в какие ворота не лезет...


Это я в курсе, что 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 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 14
Всего: 207



Код

with DataModuleArm.ADOQuery1 do
begin
 SQL.text:='Select top 0 * from MyTable';
 Open;
 Insert;
 FieldByName('TabNum').Value := DBEditEhTabNum.Text;
 FieldByName('LastName').Value := DBEditEhLast.Text;
 FieldByName('Id_CatStaff').Value := DBLookupComboboxEhDepartment.KeyValue;
 Post;
end;




--------------------
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
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0565 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.