|
vfp9 и Sql2000
|
|||
---|---|---|---|
#18+
Имею под серваком 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] Время ожидания истекло. " Самое интересное то, что если я применяю выше указанную команду первой (до корректировки представления или добавления записей в представление) все работает как часы. В чем может быть прикол? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2009, 15:17 |
|
vfp9 и Sql2000
|
|||
---|---|---|---|
#18+
Код: plaintext
Что возвращает? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2009, 15:28 |
|
vfp9 и Sql2000
|
|||
---|---|---|---|
#18+
nCurConnection - это новое соединение или то же самое, по которому подключается Remote View? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2009, 15:41 |
|
vfp9 и Sql2000
|
|||
---|---|---|---|
#18+
ВладимирМ, nCurConnection = SQLCONNECT('ConnectKip') ConnectKip - Connections ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2009, 16:34 |
|
vfp9 и Sql2000
|
|||
---|---|---|---|
#18+
PaulWist, 2 - ручная ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2009, 16:37 |
|
vfp9 и Sql2000
|
|||
---|---|---|---|
#18+
Если коннект RV и nCurConnection разные соединения, то выполнение через nCurConnection - это другое подключение и nCurConnection ждет завершения транзакции у RV ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2009, 16:51 |
|
vfp9 и Sql2000
|
|||
---|---|---|---|
#18+
во-первых, я Вас умоляю, пишите так, как я показал (сами глаза ломаете и других заставляете) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
во-вторых трейс в студию смотрим в профайлере какие выполняются команды + пробуем вместо ? (параметров) в исполняемую строку написать прямо значения ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2009, 16:52 |
|
vfp9 и Sql2000
|
|||
---|---|---|---|
#18+
PaulWist, Один и тот же ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2009, 16:55 |
|
vfp9 и Sql2000
|
|||
---|---|---|---|
#18+
+ Вы точно уверены, что перед выполнением sqlexec все изменения, произведенные в RW сохранены? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2009, 16:55 |
|
vfp9 и Sql2000
|
|||
---|---|---|---|
#18+
прошелмимо, У меня со структурой написания кода все в порядке. Правильно сам сайт писать не дает. Но дело не в этом. Трассировал. Все переменные в норме. Дело в том, что если я SqlExec выполняю первоначально, то ни каких проблем нет. А после корректировки поля записи View-а почему-то не хочет. Причем прежде чем ошибку выбросить, как положено по таймеру отсчитывает время задержки на выполнение. Такое ощущение, что не происходит разблокировки таблицы в SQL базе. Но фоксовские команды при этом нормально отрабатывают. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2009, 17:02 |
|
vfp9 и Sql2000
|
|||
---|---|---|---|
#18+
прошелмимо, Да. После корректировки я делаю ReQuery ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2009, 17:03 |
|
vfp9 и Sql2000
|
|||
---|---|---|---|
#18+
Уже просили - показать трейс из профайлера в первом и во втором случае. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2009, 17:11 |
|
vfp9 и Sql2000
|
|||
---|---|---|---|
#18+
PaulWist, Объясни тупому, что имеется ввиду. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2009, 17:21 |
|
vfp9 и Sql2000
|
|||
---|---|---|---|
#18+
Вот эта команда посылается на сервер MSSQL Код: plaintext 1. 2. 3.
У сервера есть тулза PerfomanceMonitor которая ловит все запросы к серверу, так вот в этой тулзе надо посмотреть, а какие команды посылаются на сервер, тогда будет более ясно почему второй запрос не проходит. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2009, 17:26 |
|
vfp9 и Sql2000
|
|||
---|---|---|---|
#18+
SQL2000 запустите профайлер и смотрите трейс, можете нам показать если не разберетесь (там есть возможность записать трейс в файл) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2009, 17:27 |
|
vfp9 и Sql2000
|
|||
---|---|---|---|
#18+
прошелмимо, Попробую. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2009, 17:28 |
|
vfp9 и Sql2000
|
|||
---|---|---|---|
#18+
Какие опции (avialable event classes) выбрать, чтобы не все гнало? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2009, 17:32 |
|
vfp9 и Sql2000
|
|||
---|---|---|---|
#18+
http://www.youtube.com/results?search_type=&search_query=profiler+sql2000&aq=f + поиск по ключ.слова на форуме mssqlserver + укажите в template стандарт для начала ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2009, 17:36 |
|
vfp9 и Sql2000
|
|||
---|---|---|---|
#18+
прошелмимо, Вместе с серваком установлен просто SQL Profiler. Его запустил, выбрал все опции. Файл создал, но он получился на 4 метра. Может не все надо выбирать? А вообще сервак не я устанавливал. У тебя на сайте есть DTS Package Profiler, а у меня просто SQL Profiler. Может чего до установить надо? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2009, 17:52 |
|
vfp9 и Sql2000
|
|||
---|---|---|---|
#18+
Korolyov_SВладимирМ, nCurConnection = SQLCONNECT('ConnectKip') ConnectKip - Connections Вы не поняли вопроса. Чтобы команда SQLExec() и Remote View работали в одном и том же соединении можно использовать две стратегии: 1. Открыть Remote View, а затем прочитать хендл (идентификатор) установленного соединения Код: plaintext
Здесь MyRemoteView - это алиас открытого Remote View 2. Другой вариант - это сначала создать соединение Код: plaintext
А потом открыть Remote View, используя это соединение Код: plaintext
Если же открытие Remote View производится автоматически, вне зависимости от команды создания соединения, то вы получаете ДВА соединения. Два подключения к серверу. По сути, симулируете многопользовательскую работу, когда к серверу подключаются два человека. Вот мы с Павлом и пытаемся от вас добиться ответа на вопрос: вы создаете ДВА соединения? Одно для Remote View, другое для SQLExec(). Или используете одно общее? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2009, 21:10 |
|
vfp9 и Sql2000
|
|||
---|---|---|---|
#18+
вот этот блок меня ввергает в ступор автор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 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2009, 09:10 |
|
vfp9 и Sql2000
|
|||
---|---|---|---|
#18+
ВладимирМ, Сейчас проверю. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2009, 09:23 |
|
vfp9 и Sql2000
|
|||
---|---|---|---|
#18+
прошелмимо, Сейчас сделаю по другому ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2009, 09:24 |
|
vfp9 и Sql2000
|
|||
---|---|---|---|
#18+
ВладимирМ, Вы были правы. Тема Закончена ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2009, 09:31 |
|
vfp9 и Sql2000
|
|||
---|---|---|---|
#18+
ВладимирМ, Другой вопрос. Я открываю несколько представлений с опцией Connstring nCurConnection Дает открыть 4 таблицы, а на пятой выдает ошибку Connection ConnectKip is Busy. В чем может быть проблема? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2009, 10:01 |
|
vfp9 и Sql2000
|
|||
---|---|---|---|
#18+
Я хоть и не ВладимирМ, но отвечу - у Вас используется АСИНХРОННОЕ соединение, и до тех пор пока не будут вынуты все данные из предыдущего запроса соединение будет занять. Вам уже советовали оставить все галки по дефолту. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2009, 10:22 |
|
vfp9 и Sql2000
|
|||
---|---|---|---|
#18+
PaulWist, Синхронное как раз таки. В асинхронном режиме получаются накладки в коде. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2009, 10:29 |
|
vfp9 и Sql2000
|
|||
---|---|---|---|
#18+
авторЯ открываю несколько представлений с опцией Connstring nCurConnection Дает открыть 4 таблицы, а на пятой выдает ошибку Connection ConnectKip is Busy. В чем может быть проблема? можно вопрос на засыпку? у Вас 9-я версия. что Вас заставляет работать с RV, почему Вы не воспользуетесь КАД, используя который Вы явно управляете механизмом получения данных, изменениями и явно можете посмотреть рез-т всех действий , оценить успешность, либо явно понять причину ошибки? мне оч. тяжело давать советы по RV, т.к. я не советую никому с этим связываться и сам не использую и не стану. смотрите в сторону установки каких-то св-в кол-ва получаемых от сервера записей для КАД это св-во FetchSize ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2009, 11:12 |
|
vfp9 и Sql2000
|
|||
---|---|---|---|
#18+
Закачка данных из сервера на клиента может осуществляться двумя способами: 1. По некоторой порции за раз, затем постепенная подкачка этими порциями 2. Закачать сразу все Выбор того или иного способа определяется набором свойств со словом Fetch. По умолчанию, настроено все так, чтобы закачивается не сразу все записи, а порциями по 100 записей за раз. Это сделано для того, чтобы пользователь мог, получив первые 100 записей сразу открыть форму. А остальное будет подкачиваться постепенно. Однако при такой настройке, соединение будет занято (Busy) до тех пор, пока на клиента не будет закачаны все записи. Вот и получается, что вы пытаетесь работать с занятым соединением. Чтобы это исправить, необходимо переключиться в режим, когда закачивается все сразу. В этом случае, переход к команде открытия следующего Remote View не сможет быть выполнен, пока предыдущее View не закачает все записи. Но и соединение к этому моменту освободится. Для уже созданных Remote View надо открыть дизайнер, далее пункт системного меню Query - Advanced Options - в группе Data Fetching поставить птичку в переключателе All напротив свойства "Number of Records to Fetch at time" Если вы хотите, чтобы эта птичка устанавливалась автоматически для всех новых Remote View, то ее надо установить в общих настройках Tools - Options - закладка Remote Data Но эта настройка не изменит свойств уже созданных Remote View. Программно, это свойство FetchSize=-1 для открытого Remote View. Т.е. можно изменить через CursorSetProp(), но уже после открытия View. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2009, 11:20 |
|
vfp9 и Sql2000
|
|||
---|---|---|---|
#18+
ВладимирМ, FetchSize=-1 и стоит ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2009, 15:58 |
|
vfp9 и Sql2000
|
|||
---|---|---|---|
#18+
Korolyov_SВладимирМ, FetchSize=-1 и стоит Для ВСЕХ Remote View? Насколько я понимаю, проблема, скорее всего, в одной из этих 4 Remote View, которые "дает открыть". Кстати, а как вообще открываются эти Remote View? Прямой командой USE или же они включены в DataEnvironment и открываются автоматически? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2009, 16:10 |
|
vfp9 и Sql2000
|
|||
---|---|---|---|
#18+
ВладимирМ, Я обошел этот прикол. Когда создаю соединение чререз: nCurConnection = SQLCONNECT('ConnectKip') А потом открываю Remote View, используя это соединение USE MyRemoteView CONNSTRING nCurConnection такая байда происходит. Я тоже думал что прикол в одной таблице. Поменял местами порядок открывания, прикол повторился на другой, но той же по очереди. Когда делаю nCurConnection = CursorGetProp("ConnectHandle", "MyRemoteView") Проблем не происходит. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2009, 17:24 |
|
vfp9 и Sql2000
|
|||
---|---|---|---|
#18+
прошелмимо, "почему Вы не воспользуетесь КАД?" Вообще до сих пор писал на 6. Сел за VFP9 недавно. Да и с SQL сервером работать толком не приходилось. Все почти с нуля. Расшифруй, что такое КАД ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2009, 17:30 |
|
vfp9 и Sql2000
|
|||
---|---|---|---|
#18+
здесь пример для поиграться со скриптами таблиц ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2009, 17:40 |
|
vfp9 и Sql2000
|
|||
---|---|---|---|
#18+
пример по-сложнее, демонстрирующий каскадное взаимодействие КАД (в примере бекап БД ms sql 2005) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2009, 17:44 |
|
vfp9 и Sql2000
|
|||
---|---|---|---|
#18+
добавчик к примеру каскадов КАД ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2009, 17:44 |
|
vfp9 и Sql2000
|
|||
---|---|---|---|
#18+
только просьба - без фанатизма в примерах показаны просто возм-ти класса и показано как ..... на самом деле в реальных приложениях делают своеобразные "конструкторы", которые позволяют работать со "своими" классами абстрактно, т.е. руками никто кучу св-в классов не настраивает, а пользуются некими "шаманствами", если заинтересует - то продолжим ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2009, 17:55 |
|
|
start [/forum/topic.php?all=1&fid=41&tid=1586426]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
40ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 157ms |
0 / 0 |