Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Транзакции, SQL 
:(
    Опции темы
MacTep
Дата 20.12.2004, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

Репутация: нет
Всего: 4



Привет всем! Помогите пожалуйста написать запрос на добавление (а также изменение и удаление) записей в таблицу используя транзакции. База - любая (желательно Paradox или Access). Доступ - тоже любой: либо просто через BDE, либо через ADO. Очень надо, просто погибаю! smile


--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
Alex
Дата 20.12.2004, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 17
Всего: 162



Может, все-таки выберешь способ доступа и базу или задачу расскажешь.


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
MacTep
Дата 20.12.2004, 21:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

Репутация: нет
Всего: 4



Окей, способ доступа: ADO. База - MS SQL Server 2000. Задание: реализовать добавление, изменение и удаление записей в базе данных при помощи транзакций. База - локальная!


--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
Петрович
Дата 20.12.2004, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1000
Регистрация: 2.12.2003
Где: Москва

Репутация: 6
Всего: 55



Что значит "при помощи транзакций" ?
Транзакции всего-навсего помогают обеспечивать целостность БД при серии операций (вставка, удаление, изменение), когда нужно что-бы была выполнена либо вся серия, либо ни одна операция из этой серии.
А "реализовать добавление, изменение и удаление записей в базе данных" нужно с помощью операторов.
Вообщем, мне не совсем ясна задача.


--------------------
Все знать невозможно, но хочется
PM ICQ   Вверх
MacTep
Дата 20.12.2004, 21:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

Репутация: нет
Всего: 4



Вот так обеспечить эту самую целостность? если я делаю так:

Код

procedure TForm1.Button1Click(Sender: TObject);
begin
 Connect.BeginTrans;
 try
   // действия транзакции
   Main.Insert;
   Main.FieldByName('Name').AsString:='Maxim';
   Main.FieldByName('IdZhanr').AsInteger:=3;
   Main.FieldByName('IdKolvo').AsInteger:=2;
   Main.FieldByName('IdPlatform').AsInteger:=1;
   Main.FieldByName('IdLang').AsInteger:=1;
   Main.FieldByName('Cena').AsFloat:=151.5;
   Main.Post;
   Connect.CommitTrans;
 except
   Connect.RollBackTrans;
   raise;
end;
end;
, где Connect - компонент TADOConnection. То это нормально? Я просто решил пока без запросов обойтись! Какие есть мнения?


--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
Pakshin A. S.
Дата 20.12.2004, 21:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 2
Всего: 61



Вообще, самый простой способ постоен на обычном Table:

Код

try
Table1.Insert;
...
Table1.Post;
except
Table1.Cancel;
end;

Вроде так...
PM   Вверх
Петрович
Дата 20.12.2004, 21:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1000
Регистрация: 2.12.2003
Где: Москва

Репутация: 6
Всего: 55



Вроде все правильно, если конечно Main.Connection = Connect.
Но, в данном случае, явное управление транзакцией вряд-ли необходимо поскольку делается лишь одно изменение. Если не делать явное BeginTrans, то при выполнении Post, транзакцая будет начата неявно, а после завершения Post будет так-же неявно завершена. По крайней мере по теории smile.


--------------------
Все знать невозможно, но хочется
PM ICQ   Вверх
MacTep
Дата 20.12.2004, 22:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

Репутация: нет
Всего: 4



Спасибо! Мне просто приблизительно нужно преподу показать. Он так и сказал, что в данном курсаче эти транзакции не несут никакой смысловой нагрузки, но это сделано просто для того, чтобы мы знали с чем имеем дело! спасибо!


--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0752 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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