Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / vfp9 и Sql2000 / 25 сообщений из 39, страница 1 из 2
19.05.2009, 15:17
    #35994361
Korolyov_S
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vfp9 и Sql2000
Имею под серваком SQL2000 базу данных.
Создал в фоксовской базе данных удаленные представления к таблицам (Remote Views).
Применяю к строкам представления обычные фоксовские команды - Insert, Replace, Delete и т.д. (в любом порядке), все работает как положено. Но если после этих команд я послаю SQL команду на удаление группы строк таблицы прямо в SQL базе (для уменьшения трафика):

= SQLEXEC(nCurConnection, "Delete Serj.SprPokaz From Serj.SprPokaz Inner Join "+
"(Serj.SprUnitList Inner Join Serj.SprHome On Serj.SprUnitList.Id_SprHome=Serj.SprHome.Id) "+;
"On Serj.SprPokaz.Id_SprUnitList=Serj.SprUnitList.Id "+;
"Where Serj.SprHome.Id_SprGeu = ?TreeView.Id_SprGeu And Serj.SprPokaz.dDt BetWeen ?dDtFrom And ?dDtTill")

, выдается сообщение

" Connectivity Error [ODBC SQL Driver] Время ожидания истекло. "

Самое интересное то, что если я применяю выше указанную команду первой (до корректировки представления или добавления записей в представление) все работает как часы.

В чем может быть прикол?
...
Рейтинг: 0 / 0
19.05.2009, 15:28
    #35994399
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vfp9 и Sql2000
Код: plaintext
?sqlgetprop(nCurConnection,'Transaction')

Что возвращает?
...
Рейтинг: 0 / 0
19.05.2009, 15:41
    #35994449
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vfp9 и Sql2000
nCurConnection - это новое соединение или то же самое, по которому подключается Remote View?
...
Рейтинг: 0 / 0
19.05.2009, 16:34
    #35994628
Korolyov_S
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vfp9 и Sql2000
ВладимирМ,

nCurConnection = SQLCONNECT('ConnectKip')
ConnectKip - Connections
...
Рейтинг: 0 / 0
19.05.2009, 16:37
    #35994638
Korolyov_S
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vfp9 и Sql2000
PaulWist,

2 - ручная
...
Рейтинг: 0 / 0
19.05.2009, 16:51
    #35994693
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vfp9 и Sql2000
Если коннект RV и nCurConnection разные соединения, то выполнение через nCurConnection - это другое подключение и nCurConnection ждет завершения транзакции у RV
...
Рейтинг: 0 / 0
19.05.2009, 16:52
    #35994696
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vfp9 и Sql2000
во-первых, я Вас умоляю, пишите так, как я показал
(сами глаза ломаете и других заставляете)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Text to lcSqlCmd NOSHOW PRETEXT  7 
	Delete Serj.SprPokaz 
		From Serj.SprPokaz 
			Inner Join ( Serj.SprUnitList 
								Inner Join Serj.SprHome On Serj.SprUnitList.Id_SprHome=Serj.SprHome.Id
								) On Serj.SprPokaz.Id_SprUnitList=Serj.SprUnitList.Id 
		Where Serj.SprHome.Id_SprGeu = ?TreeView.Id_SprGeu 
		  And Serj.SprPokaz.dDt BetWeen ?dDtFrom And ?dDtTill
EndText 
if SQLEXEC(nCurConnection, lcSqlCmd)<= 0 
   ...
   


во-вторых трейс в студию
смотрим в профайлере какие выполняются команды

+ пробуем вместо ? (параметров) в исполняемую строку написать прямо значения
...
Рейтинг: 0 / 0
19.05.2009, 16:55
    #35994710
Korolyov_S
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vfp9 и Sql2000
PaulWist,
Один и тот же
...
Рейтинг: 0 / 0
19.05.2009, 16:55
    #35994713
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vfp9 и Sql2000
+ Вы точно уверены, что перед выполнением sqlexec
все изменения, произведенные в RW сохранены?
...
Рейтинг: 0 / 0
19.05.2009, 17:02
    #35994744
Korolyov_S
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vfp9 и Sql2000
прошелмимо,
У меня со структурой написания кода все в порядке.
Правильно сам сайт писать не дает. Но дело не в этом. Трассировал. Все переменные в норме. Дело в том, что если я SqlExec выполняю первоначально, то ни каких проблем нет. А после корректировки поля записи View-а почему-то не хочет. Причем прежде чем ошибку выбросить, как положено по таймеру отсчитывает время задержки на выполнение. Такое ощущение, что не происходит разблокировки таблицы в SQL базе. Но фоксовские команды при этом нормально отрабатывают.
...
Рейтинг: 0 / 0
19.05.2009, 17:03
    #35994749
Korolyov_S
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vfp9 и Sql2000
прошелмимо,
Да. После корректировки я делаю ReQuery
...
Рейтинг: 0 / 0
19.05.2009, 17:11
    #35994785
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vfp9 и Sql2000
Уже просили - показать трейс из профайлера в первом и во втором случае.
...
Рейтинг: 0 / 0
19.05.2009, 17:21
    #35994821
Korolyov_S
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vfp9 и Sql2000
PaulWist,
Объясни тупому, что имеется ввиду.
...
Рейтинг: 0 / 0
19.05.2009, 17:26
    #35994838
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vfp9 и Sql2000
Вот эта команда посылается на сервер MSSQL

Код: plaintext
1.
2.
3.
= SQLEXEC(nCurConnection, "Delete Serj.SprPokaz From Serj.SprPokaz Inner Join "+
"(Serj.SprUnitList Inner Join Serj.SprHome On Serj.SprUnitList.Id_SprHome=Serj.SprHome.Id) "+;
"On Serj.SprPokaz.Id_SprUnitList=Serj.SprUnitList.Id "+;
"Where Serj.SprHome.Id_SprGeu = ?TreeView.Id_SprGeu And Serj.SprPokaz.dDt BetWeen ?dDtFrom And ?dDtTill")


У сервера есть тулза PerfomanceMonitor которая ловит все запросы к серверу, так вот в этой тулзе надо посмотреть, а какие команды посылаются на сервер, тогда будет более ясно почему второй запрос не проходит.
...
Рейтинг: 0 / 0
19.05.2009, 17:27
    #35994841
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vfp9 и Sql2000
SQL2000

запустите профайлер и смотрите трейс,
можете нам показать если не разберетесь (там есть возможность записать трейс в файл)
...
Рейтинг: 0 / 0
19.05.2009, 17:28
    #35994844
Korolyov_S
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vfp9 и Sql2000
прошелмимо,
Попробую.
...
Рейтинг: 0 / 0
19.05.2009, 17:32
    #35994854
Korolyov_S
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vfp9 и Sql2000
Какие опции (avialable event classes) выбрать, чтобы не все гнало?
...
Рейтинг: 0 / 0
19.05.2009, 17:36
    #35994864
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vfp9 и Sql2000
http://www.youtube.com/results?search_type=&search_query=profiler+sql2000&aq=f

+ поиск по ключ.слова на форуме mssqlserver

+ укажите в template стандарт для начала
...
Рейтинг: 0 / 0
19.05.2009, 17:52
    #35994912
Korolyov_S
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vfp9 и Sql2000
прошелмимо,
Вместе с серваком установлен просто SQL Profiler.
Его запустил, выбрал все опции. Файл создал, но он получился на 4 метра. Может не все надо выбирать?

А вообще сервак не я устанавливал. У тебя на сайте есть DTS Package Profiler, а у меня просто
SQL Profiler. Может чего до установить надо?
...
Рейтинг: 0 / 0
19.05.2009, 18:09
    #35994941
Korolyov_S
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vfp9 и Sql2000
прошелмимо,
...
Рейтинг: 0 / 0
19.05.2009, 21:10
    #35995227
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vfp9 и Sql2000
Korolyov_SВладимирМ,

nCurConnection = SQLCONNECT('ConnectKip')
ConnectKip - Connections
Вы не поняли вопроса.

Чтобы команда SQLExec() и Remote View работали в одном и том же соединении можно использовать две стратегии:

1. Открыть Remote View, а затем прочитать хендл (идентификатор) установленного соединения

Код: plaintext
nCurConnection = CursorGetProp("ConnectHandle", "MyRemoteView")

Здесь MyRemoteView - это алиас открытого Remote View

2. Другой вариант - это сначала создать соединение

Код: plaintext
nCurConnection = SQLCONNECT('ConnectKip')

А потом открыть Remote View, используя это соединение

Код: plaintext
USE MyRemoteView CONNSTRING nCurConnection

Если же открытие Remote View производится автоматически, вне зависимости от команды создания соединения, то вы получаете ДВА соединения. Два подключения к серверу.

По сути, симулируете многопользовательскую работу, когда к серверу подключаются два человека.

Вот мы с Павлом и пытаемся от вас добиться ответа на вопрос: вы создаете ДВА соединения? Одно для Remote View, другое для SQLExec(). Или используете одно общее?
...
Рейтинг: 0 / 0
20.05.2009, 09:10
    #35995696
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vfp9 и Sql2000
вот этот блок меня ввергает в ступор

авторIF @@TRANCOUNT > 0 ROLLBACK TRAN
go
IF @@TRANCOUNT > 0 COMMIT TRAN
go
IF @@TRANCOUNT > 0 COMMIT TRAN
go
IF @@TRANCOUNT > 0 COMMIT TRAN
go
IF @@TRANCOUNT > 0 COMMIT TRAN
go
IF @@TRANCOUNT > 0 COMMIT TRAN
go
IF @@TRANCOUNT > 0 COMMIT TRAN
go
IF @@TRANCOUNT > 0 COMMIT TRAN
go
IF @@TRANCOUNT > 0 COMMIT TRAN
go
IF @@TRANCOUNT > 0 COMMIT TRAN
go
IF @@TRANCOUNT > 0 COMMIT TRAN
go
IF @@TRANCOUNT > 0 COMMIT TRAN
go

разберитесь, почему генерятся эти команды на сервер

уберите все транзакции из кода, снимите все галки(если есть такие) об использ-и транзакций в RV

+ просьба трейс снимать не для всего сеанса работы а именно
с точки начала запроса и ред-я данных в RV
...
Рейтинг: 0 / 0
20.05.2009, 09:23
    #35995716
Korolyov_S
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vfp9 и Sql2000
ВладимирМ,
Сейчас проверю.
...
Рейтинг: 0 / 0
20.05.2009, 09:24
    #35995719
Korolyov_S
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vfp9 и Sql2000
прошелмимо,
Сейчас сделаю по другому
...
Рейтинг: 0 / 0
20.05.2009, 09:31
    #35995734
Korolyov_S
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vfp9 и Sql2000
ВладимирМ,
Вы были правы. Тема Закончена
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / vfp9 и Sql2000 / 25 сообщений из 39, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]