|   |   | 
| 
 | v7: Как отконектится от ADODB ? | ☑ | ||
|---|---|---|---|---|
| 0
    
        DES 09.05.13✎ 17:25 | 
        Connection = CreateObject("ADODB.Connection");
  подключаюсь к базе1 Все нормально. отконекчивась. Connection.Close(); Connection = 0; Connection = CreateObject("ADODB.Connection"); Если хочу отключиться и подключиться к такой же, но другой. Ругается что база занята. Мне в цикле нужно перебрать десяток баз. Как реализовать ? | |||
| 1
    
        Ковычки 09.05.13✎ 17:27 | 
        не убивать объект ?     | |||
| 2
    
        DES 09.05.13✎ 17:35 | 
        Всмысле ?
  //Connection = 0; так - тоже самое. | |||
| 3
    
        DES 09.05.13✎ 17:42 | 
        Microsoft OLE DB Provider for ODBC Drivers: [ODBC Firebird Driver]operating system directive CreateFile failed
  Процесс не может получить доступ к файлу, так как этот файл занят другим процессом. | |||
| 4
    
        Jaap Vduul 09.05.13✎ 19:59 | 
        (3)
  Так может и в самом деле файл занят другим процессом? Или вот, например, так бывает: http://tracker.firebirdsql.org/browse/CORE-3558 | |||
| 5
    
        Svetka 09.05.13✎ 20:37 | 
        (0) вот можно покурить:
  про ADO http://www.askit.ru/custom/progr_admin/m13/13_01_ado_basics.htm подключение с обходом recordset http://www.progmans.net/1s/113-1s77-soedinenie-s-sql-server-podklyuchenie-k-sql-server-adodb-connection-recordset-activeconnection-pryamoj-sql-zapros-k-baze-obxod-rekordseta.html http://pro1c.org.ua/index.php?showtopic=2111 | |||
| 6
    
        DES 09.05.13✎ 22:47 | 
        СПС. Это все скурено уже.
  Похоже на то что драйвер ADODB одноразовый. Даже если вызвать обработку 2-й раз но с другой строкой подключения, то вылетает по ошибке. | |||
| 7
    
        DES 09.05.13✎ 22:49 | 
        (4) нет, не занят     | |||
| 8
    
        Torquader 09.05.13✎ 23:37 | 
        Попробуй через "вставку" на VbScript - с ним ADODB работает достаточно стабильно, и в VbScript есть команда Erase для превращения объекта в неизвестно что.     | |||
| 9
    
        DES 10.05.13✎ 11:21 | 
        (8) подскажи рыбу     | |||
| 10
    
        DES 10.05.13✎ 12:03 | 
        (8) Да. Спасибо.
  VBS - отработало как нужно. | |||
| 11
    
        DES 10.05.13✎ 12:06 | 
        Dim Connection 
  Dim sql_query Dim objFSO, objOutFile Dim intCount, i Set objFSO = CreateObject("Scripting.FileSystemObject") Set objOutFile = objFSO.OpenTextFile("T:\label.txt", 8, True) sql_query = "Select id,n,cp from label where year=2013" set Connection = CreateObject("ADODB.Connection") Connection.ConnectionString = "Driver=Firebird/InterBase(r) driver;Dbname=T:\BD1.GDB;CHARSET=NONE;PWD=masterkey;UID=SYSDBA;Client=T:\gds32.dll" Connection.Open objOutFile.Write Connection.Properties.Item(0).Name & " = " & Connection.Properties.Item(0).Value & vbCrLf Set RecordSet = Connection.execute(sql_query) intCount = RecordSet.Fields.Count do while not RecordSet.eof objOutFile.Write RecordSet.Fields(0).Value & " " & RecordSet.Fields(1).Value & " " & RecordSet.Fields(2).Value & vbCrLf RecordSet.MoveNext loop Connection.close Connection.ConnectionString = "Driver=Firebird/InterBase(r) driver;Dbname=T:\BD2.GDB;CHARSET=NONE;PWD=masterkey;UID=SYSDBA;Client=T:\gds32.dll" Connection.Open objOutFile.Write Connection.Properties.Item(0).Name & " = " & Connection.Properties.Item(0).Value & vbCrLf Set RecordSet = Connection.execute(sql_query) intCount = RecordSet.Fields.Count do while not RecordSet.eof objOutFile.Write RecordSet.Fields(0).Value & " " & RecordSet.Fields(1).Value & " " & RecordSet.Fields(2).Value & vbCrLf RecordSet.MoveNext loop Connection.close | |||
| 12
    
        Ковычки 10.05.13✎ 12:07 | 
        странно     | |||
| 13
    
        DES 10.05.13✎ 12:40 | 
        Все понятно, не в этом дело , а в том что я вызываю библиотеку драйвера из того же каталога что и база.
  Этот файл как раз и занят. Если его вызывать из одного любого каталога то все работает штатно. Connection.ConnectionString = "Driver=Firebird/InterBase(r) driver;Dbname=Т:\ + СокрЛП(Кат_GDB) + "\BD.GDB" + ";CHARSET=NONE;PWD=masterkey;UID=SYSDBA;Client=T:\gds32.dll"; а так не хочет: Connection.ConnectionString = "Driver=Firebird/InterBase(r) driver;Dbname=Т:\ + СокрЛП(Кат_GDB) + "\BD.GDB" + ";CHARSET=NONE;PWD=masterkey;UID=SYSDBA;Client=Т:\ + СокрЛП(Кат_GDB) + "\gds32.dll"; | |||
| 14
    
        DES 10.05.13✎ 13:12 | 
        нужно выгружать DLL 
  Делаю >tasklist /M gds32.dll Вызывается окно завершения 1С. | |||
| 15
    
        Ковычки 10.05.13✎ 13:14 | 
        самомо собой, причину     | |||
| 16
    
        DES 10.05.13✎ 13:18 | 
        причина taskkill /FI "MODULES eq gds32.dll"     | |||
| 17
    
        Ковычки 10.05.13✎ 13:25 | 
        (16) надо найти в чем разница     | |||
| 18
    
        Ковычки 10.05.13✎ 13:28 | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |