Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Ошибка в обработке базы данных / 2 сообщений из 2, страница 1 из 1
22.07.2005, 19:52:10
    #33180951
Vadon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка в обработке базы данных
Я в VB обрабатываю запросами данные, находящиеся в таблице, и представляющие собой иерархическую структуру (изделие - детали в ходящие в него).
Если я обрабатываю Деталь1 отдельно, то все нормально. Если я обрабатываю все изделие целиком, то на этапе обработки Деталь1 вызывается ошибка:
[DBNETLIB] [ConnectionOpen (Connect()).] SQL-сервер не существует, или отсутствует доступ. Хотя этого не может быть, у меня права администратора домена.
Дебагер ссылается на строку, находящуюся после строк
Код: plaintext
1.
counttransfertext = "SELECT count(*) as Expr1 FROM tblUnitTransfer WHERE (OperationID IN (SELECT OperationID FROM tblUnitOperation WHERE (UnitID IN (SELECT UnitID FROM tblUnits WHERE UnitNum = '" & MSFlexGrid2.TextMatrix(i,  0 ) & "')) AND (OperationCode = '" & rsoperation.Fields( 0 ).Value & "')))"                       
Set rscounttransfertext = conn.Execute(counttransfertext)



Для conn прописано
Код: plaintext
1.
2.
3.
Set conn = New ADODB.Connection
conn.CommandTimeout =  3600 
conn.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=TehnoPro;Data Source=BUHSRV"
conn.Open


Очень хотелось бы услышать ответ. За ранее благодарен:)
...
Рейтинг: 0 / 0
27.07.2005, 12:15:30
    #33186622
Vadon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка в обработке базы данных
Я сам задал вопрос, сам на него и отвечу (расковырял таки причину...)...
Просьба к модераторам, не удалять этот топик, на мой взгляд, он может очень многим пригодится, т.к. с этой проблемой (я сужу по тому, что видел в инете по этой проблеме) очень часто сталкиваются...
Код: plaintext
conn.ConnectionTimeout =  3600  
- вот решение данной проблемы (ну значение поставьте уж сами...). Да, я указал conn.CommandTimeout, однако в ситуации, если на сервере долго происходит обработка данных, этого параметра не хватает, и по умолчанию для ConnectionTimeout старина Билли поставил "всего" 15 секунд. Для кого то это может показатсья достаточным, однако если идет только клиентская часть ,то бывает что мало, в случае больших баз данных и запросов высокого уровня вложений. И кстати, еще такой совет даю (кому он нужен естественно...), CommandTimeout, можно присвоить значение не больше 60...Иначе глюки с многопользовательской программой, которая также работает на БД будут вам обеспеченны. Конечно все это заслуживает более подробного рассмотрения, да и пригоится все это только для начинающих...но я буду рад ,если все таки кому то поможет...НУ а если уже смотреть с правильной точки зрения, то конечно при использовании "клиент-сервер" - параметров по умолчанию должно хватать, так что прежде чем ругать Майкрософт и Гейтса, подумайте, а стоит ли... ведь там тоже не дураки сидят, и значит вы что-то неправильно делаете...
Вот такая маленькая претензия на статью :)
Удачи!
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Ошибка в обработке базы данных / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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