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

Откуда:
Сообщений: 397
Здравствуйте...
Есть проблемка...
Код на делфи 7...
Связка с скулом 2008...
Есть 2 компа и сервер... На ресвере стоит windows 2008 и sql server 2008...
Программа на delphi 7 тоже на этом же сервере...
Запускаю программу удаленно с двух компьютеров...
with dmData.qrTemp2 do
begin
Close;
Sql.Clear;
Sql.Add('SELECT TOP 1 * FROM docs');
Open;
Insert;
FieldByName('doc_type').Value:= fDoc_type;
FieldByName('doc_date').AsDateTime :=date();
Post;
nd_oc := FieldByName('n_doc').AsInteger;
showmessage(inttostr(FieldByName('n_doc').AsInteger));
Close;
end;
Вход в sql server происходит под одним логином он sysadmin
поле n_doc это ключ таблицы docs он автоинкрементрый...
Результат...
На первом компе выходит ответ нужное число... к примеру 52452
А на втором 0...
Одна и та же программа!!!!
Почему так?
13 ноя 09, 16:25    [7927247]     Ответить | Цитировать Сообщить модератору
 Re: Непонятное явление с Insert  [new]
так,
Guest
Sandist,

откройте для себя теги оформления кода
13 ноя 09, 16:29    [7927279]     Ответить | Цитировать Сообщить модератору
 Re: Непонятное явление с Insert  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36803
И вы уже выяснили, какие команды были отправлены mssql-серверу?
13 ноя 09, 16:33    [7927307]     Ответить | Цитировать Сообщить модератору
 Re: Непонятное явление с Insert  [new]
Sandist
Member

Откуда:
Сообщений: 397
да... запрос проходит верно... без проблем... строка добавляется... но ответ (инкремент) не возвращается...
13 ноя 09, 16:38    [7927353]     Ответить | Цитировать Сообщить модератору
 Re: Непонятное явление с Insert  [new]
Glory
Member

Откуда:
Сообщений: 104760
Sandist
да... запрос проходит верно... без проблем... строка добавляется... но ответ (инкремент) не возвращается...

И какой же командой ваше приложение просит сервер вернуть это значение ?
13 ноя 09, 16:40    [7927368]     Ответить | Цитировать Сообщить модератору
 Re: Непонятное явление с Insert  [new]
Sandist
Member

Откуда:
Сообщений: 397
Post;
nd_oc := FieldByName('n_doc').AsInteger;
Срабатывает post... сервер обрабатывает... производит запись.. инкремент создается и получаем ответ... Он работает... все верно... просто на определенных компах не страбатывает.. таких компов 5 на фирме где в общем их примерно 300
13 ноя 09, 16:43    [7927396]     Ответить | Цитировать Сообщить модератору
 Re: Непонятное явление с Insert  [new]
Sandist
Member

Откуда:
Сообщений: 397
Если честно мне кажется проблема в компонентах windows с каторых происходит запуск... это скорее delphi... просто с того форума сказали тут спросить..
13 ноя 09, 16:45    [7927417]     Ответить | Цитировать Сообщить модератору
 Re: Непонятное явление с Insert  [new]
iljy
Member

Откуда:
Сообщений: 8711
Sandist
Post;
nd_oc := FieldByName('n_doc').AsInteger;
Срабатывает post... сервер обрабатывает... производит запись.. инкремент создается и получаем ответ... Он работает... все верно... просто на определенных компах не страбатывает.. таких компов 5 на фирме где в общем их примерно 300

Это кусок дельфивой проги, а вас спрашивают какую команду получает сервер. Профайлером смотрите.
13 ноя 09, 16:45    [7927425]     Ответить | Цитировать Сообщить модератору
 Re: Непонятное явление с Insert  [new]
й
Guest
автор

Sql.Add('SELECT TOP 1 * FROM docs');


возможно не в этом случае, но
TOP без ORDER BY - стандартная причина чудес
13 ноя 09, 16:45    [7927426]     Ответить | Цитировать Сообщить модератору
 Re: Непонятное явление с Insert  [new]
Glory
Member

Откуда:
Сообщений: 104760
Sandist
Post;
nd_oc := FieldByName('n_doc').AsInteger;
Срабатывает post... сервер обрабатывает... производит запись.. инкремент создается и получаем ответ...

А на сервере то что при этом происходит ? Сколько коннектов, например, открывается ? Какие команды в них выполняются ?
13 ноя 09, 16:46    [7927433]     Ответить | Цитировать Сообщить модератору
 Re: Непонятное явление с Insert  [new]
Sandist
Member

Откуда:
Сообщений: 397
запрос проходит успешно... как еще ответить... вот что приходит на проф:
exec sp_executesql N'INSERT INTO "ac".."docs" ("doc_type","doc_date","doc_no","otkuda","kuda","cherez","n_opl","link","is_nsp","summa_opl","kurs_v","comment","buhg") VALUES (@P1,@P2,@P3,@P4,@P5,@P6,@P7,@P8,@P9,@P10,@P11,@P12,@P13); SELECT SCOPE_IDENTITY() AS SCOPE_ID_COLUMN',N'@P1 varchar(3),@P2 datetime,@P3 varchar(11),@P4 int,@P5 int,@P6 varchar(1),@P7 int,@P8 int,@P9 bit,@P10 money,@P11 money,@P12 varchar(1),@P13 int','СФ®','2009-11-12 00:00:00','09-11-00155',4,16,'1',1,5098654,0,$340.9600,$29.2000,'',5

а это перед ним

declare @p1 int
set @p1=1
exec sp_prepare @p1 output,NULL,N'SELECT * FROM docs',1
select @p1
13 ноя 09, 16:55    [7927516]     Ответить | Цитировать Сообщить модератору
 Re: Непонятное явление с Insert  [new]
Glory
Member

Откуда:
Сообщений: 104760
Это с той машины, где 0 возвращается ?
13 ноя 09, 17:09    [7927672]     Ответить | Цитировать Сообщить модератору
 Re: Непонятное явление с Insert  [new]
Sandist
Member

Откуда:
Сообщений: 397
это с сервера... а на машине нет ничего... не делфи не скула... с этого компа просто удаленно запускают прогу, которая расположена на сервере где и стоит sql 2008
13 ноя 09, 17:12    [7927694]     Ответить | Цитировать Сообщить модератору
 Re: Непонятное явление с Insert  [new]
Glory
Member

Откуда:
Сообщений: 104760
Sandist
это с сервера... а на машине нет ничего... не делфи не скула... с этого компа просто удаленно запускают прогу, которая расположена на сервере где и стоит sql 2008

Не понял
Было анонсированно "Запускаю программу удаленно с двух компьютеров..."
Представленные команды на сервер с какого из двух компьютеров поступают ?
13 ноя 09, 17:13    [7927703]     Ответить | Цитировать Сообщить модератору
 Re: Непонятное явление с Insert  [new]
Sandist
Member

Откуда:
Сообщений: 397
а! понял... это с компьютера, с которого я получаю 0 вместа инкремента
13 ноя 09, 17:15    [7927721]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить