Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Экспорт в DBF из MS SQL Server 2000 из программы на Delphi 7  [new]
AndySolo
Member

Откуда: Krasnodar, Russia
Сообщений: 210
Делаю экспорт в DBF из MS SQL Server 2000 из программы на Delphi 7:

INSERT INTO SOURCEDBF...AD0710
(
fio_f, fio_i, fio_o, d_rojden, pol, dok, pasp_seria, pasp_nomer,
naim_raion, naim_punkt, naim_ulisa,
dom, kvart
)
SELECT
SUBSTRING(fio_f, 1, 30) AS fio_f,
SUBSTRING(fio_i, 1, 20) AS fio_i,
SUBSTRING(fio_o, 1, 20) AS fio_o,
CAST(d_rojden as datetime) as d_rojden,
SUBSTRING(pol, 1, 1) AS pol,
SUBSTRING(dok, 1, 20) AS dok,
SUBSTRING(pasp_seria, 1, 10) AS pasp_seria,
SUBSTRING(pasp_nomer, 1, 10) AS pasp_nomer,
SUBSTRING(naim_raion, 1, 40) AS naim_raion,
SUBSTRING(SUBSTRING(vid_punkt, 1, 3) + '. ' + naim_punkt, 1, 40) AS naim_punkt,
SUBSTRING(SUBSTRING(vid_ulisa, 1, 2) + '. ' + naim_ulisa, 1, 40) AS naim_ulisa,
CASE korp WHEN '' THEN SUBSTRING(dom, 1, 8) ELSE SUBSTRING(dom + '/' + korp, 1, 8) END AS dom,
SUBSTRING(kvart, 1, 5) AS kvart
FROM NW_Peoples2004_09

При его выполнении вылетает ошибка:
OLE DB error trace [OLE/DB Provider 'Microsoft.Jet.OLEDB.4.0' iUnknown::Query Interface returned 0x80004002]

Но запрос выполняется из SQL Query Analizer.

Как заставить выполнитбся запрос из Delphi 7?
27 окт 04, 17:43    [1066057]     Ответить | Цитировать Сообщить модератору
 Re: Экспорт в DBF из MS SQL Server 2000 из программы на Delphi 7  [new]
SinnerXP`
Guest
А попробуй обернуть этот запрос в сохраненку...
27 окт 04, 20:15    [1066470]     Ответить | Цитировать Сообщить модератору
 Re: Экспорт в DBF из MS SQL Server 2000 из программы на Delphi 7  [new]
AndySolo
Member

Откуда: Krasnodar, Russia
Сообщений: 210
Я заставил этот запрос выполниться из программы. Оказывается именно этот запрос не понимает начало и конец транзакции:

// DM.MainBaseC.BeginTrans;
DM.InsertRecsQ.ExecSQL;
// DM.MainBaseC.CommitTrans;

Закоментировал две строки - и ошибка пропала. Первый раз с такой ошибкой сталкиваюсь. И в базах Oracle 8.1.7, и в базах Access 200x, и в базах SQL Server 2000 8.00.818 все запросы понимают BeginTrans и CommitTrans.
3 ноя 04, 15:00    [1080856]     Ответить | Цитировать Сообщить модератору
 Re: Экспорт в DBF из MS SQL Server 2000 из программы на Delphi 7  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37100
Отдельный статмент и так выполняется в транзакции.
3 ноя 04, 15:02    [1080863]     Ответить | Цитировать Сообщить модератору
 Re: Экспорт в DBF из MS SQL Server 2000 из программы на Delphi 7  [new]
Glory
Member

Откуда:
Сообщений: 104760
Оказывается именно этот запрос не понимает начало и конец транзакции:
Хорошо бы посмотреть что именно клиент отсылает серверу при выполнении этих 3х строк вашей программы. И потом уже попробовать повторить их в QA
3 ноя 04, 15:03    [1080867]     Ответить | Цитировать Сообщить модератору
 Re: Экспорт в DBF из MS SQL Server 2000 из программы на Delphi 7  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37100
В крайнем случае
begin tran
INSERT INTO SOURCEDBF...AD0710
(
fio_f, fio_i, fio_o, d_rojden, pol, dok, pasp_seria, pasp_nomer,
naim_raion, naim_punkt, naim_ulisa,
dom, kvart
)
SELECT
...
if @@error = 0 commit else rolдback
P.S. И лучше все в хп пихать.
3 ноя 04, 15:03    [1080868]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить