![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Посоветуйте чем лучше состыковывать Delphi 7 и MSSQL [D7, MSSQL]
Max Zyuzin © (2005-02-11 16:07:00)Приветствую, Всех!
Возникла такая необходимость вот. Хотел бы поинтересоваться, кто, чем для этого пользуется, какими в смысле компонентами (писать самому - не предлагать :-) ).
Желательно что бы была внятная поддержка транзакций, хранимых процедур и пр. вкусности вот.
Max Zyuzin (2005-02-14 11:46:00) [1]>sniknik © (14.02.05 11:14) [11]
Поменял драйвер усе заработало, сенкс. Может быть кинешь ссылку на работу с ADO где все хорошо расписано... (хелп я и та почитаю :))
Max Zyuzin (2005-02-14 11:25:00) [2]>sniknik © (14.02.05 11:14) [11]
Попробуе переделать алиас, ок..
Кусок по вставке делается в цикле и в конце стоит
try
DM.LogADOCommand.CommandText := 'commit transaction';
DM.LogADOCommand.Execute;
except
DM.LogADOCommand.CommandText := 'rollback transaction';
DM.LogADOCommand.Execute;
end;
sniknik (2005-02-14 11:14:00) [3]> ODBC SQL Server Driver
лучше не использовать, у него свои ограничения, по сравнению с самим MSSQL сервером. (типы параметров может не понимать)
используй не ODBC а OLEDB провайдера.
> Вот тут я правильно сделал или мудрю?
нормально, если есть закрывающая (не видно), но если это делается для одной команды то транзакция бессмысленна (будет автоматическая и без этого).
Max Zyuzin (2005-02-14 11:06:00) [4]>Johnmen © (14.02.05 10:54) [9]
Даю, Жень :)
ADOQuery.SQL =
insert into ATSLog
(CallTime, Duration, Dialer, NumDialed)
values
(:pCallTime, :pDuration, :pDialer, :pNumDialed)
У параметра pCallTime автоматом проставилсось DateType "ftDateTime"
Вызов из программы :
DM.LogUpdADOConnection.Connected := True;
DM.LogADOCommand.CommandText := 'begin transaction';
DM.LogADOCommand.Execute; //??? Вот тут я правильно сделал или мудрю?
DM.LogUpdADOQuery.Prepared := True;
..........
DM.LogUpdADOQuery.Parameters[0].Value := TempLogStr.CallTime;
DM.LogUpdADOQuery.Parameters[1].Value := TempLogStr.Duration;
DM.LogUpdADOQuery.Parameters[2].Value := TempLogStr.Dialer;
DM.LogUpdADOQuery.Parameters[3].Value := TempLogStr.NumDialed;
DM.LogUpdADOQuery.ExecSQL;
Johnmen (2005-02-14 10:54:00) [5]>Max Zyuzin © (14.02.05 10:41) [8]
Код давай :)
Max Zyuzin (2005-02-14 10:41:00) [6]Поковырялся немного в ADO и сразу налетел на грабли - При попытке ExecSQL у ADOQuery - "[Microsoft][ODBC SQL Server Driver] Optional feature not implemented"
Порылся в инете и я так понял что это потому что у меня один из передаваемых параметров у меня типа TDateTime... как это вылечить?
sniknik (2005-02-14 08:36:00) [7]> Почему ADO?
ADO это "родная" разработка мелкософта специально для MSSQL разрабатывалась.
> Есть такие компоненты SQLDirect,
в случае с MSSQL наверняка будет через то же ADO (вернее OLEDB драйвер который в ADO непосредственно используется), проверял пару "прямых" компонент, там было именно так. (возможно один из них и был SQLDirect), т.что "прямизна" таких компонент в случае с MSSQL под вопросом.
> TADOConnection.[Begin|Commit}Roallback]Trans
было на форуме такая работа вызывала какието проблемы (не скажу точно какие, не помню).
в то же время постоянно делаю транзакции через запросы на сервере, проблем ни разу не было.
ADOCommand.CommandText:= 'BEGIN TRANSACTION'; и тд.
ЮЮ (2005-02-14 03:59:00) [8]>Явно есть IBTransaction, и работать с ним мона явно IBTransaction.Commit... и т.д. и т.п.
TADOConnection.[Begin|Commit}Roallback]Trans
stakan (2005-02-11 17:24:00) [9]Есть такие компоненты SQLDirect,
работают с любым SQL сервером
Max Zyuzin (2005-02-11 17:21:00) [10]>Ega23 © (11.02.05 16:48) [1]
Почему ADO?
Max Zyuzin (2005-02-11 17:18:00) [11]>Fay © (11.02.05 17:03) [2]
Не затруднит, вот возьмем к примеру ib компоненты :) Явно есть IBTransaction, и работать с ним мона явно IBTransaction.Commit... и т.д. и т.п. Хочется что то подобное что бы мене самому была возможность явно их стартовать и заканчивать, а не неявно. Вот такой сумбур в обчем, я с ADO например не работал вовсе и не представляю пока как там это реализовано. Хотелось бы что бы в рамках одной транзакции можно было кучу запросов организовать.
Fay (2005-02-11 17:03:00) [12]>> что бы была внятная поддержка транзакций
Вас не затруднит развернуть это понятие подробнее?
Ega23 (2005-02-11 16:48:00) [13]ADO