powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Вставка набора записей.
20 сообщений из 45, страница 2 из 2
Вставка набора записей.
    #38210355
Alex_men
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
HandKotAlex_men, Вы можете показать, как на данный момент у Вас это организовано?

Конечно могу. Вариант который работал и вдруг перестал выглядит так:
1) в ODBC настроен алиас swlist
2) в коде присутствует инструкция, которая по замыслу (да и до не давнего времени прекрасно работала) заливает данные из DBF во временную таблицу в SQL базе
Код: vbnet
1.
2.
CnBase.Execute "SELECT * INTO #tmpsw " & _
                    "FROM OPENROWSET ('MSDASQL','Provider={Microsoft dBase Driver (*.dbf)};Persist Security Info=False;DSN=swlist;Extended Properties=DBASE 5;','SELECT * FROM sw_list') "



Тут все работало четко и вся процедура импорта с учетом обновления существующих в SQL базе и добавления новых занимала 1-1,5 минуты (в таблице порядка 250 тыс записей).

Второй вариант который работает и сейчас:
1) Использует тот же ODBC алиас
2) открывает соединение потом уже отбирает данные и заливает через рекордсет ( но тут время уже 10 минут получается)
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
    Set cn_Sprv = CreateObject("ADODB.Connection")
    cn_Sprv.CommandTimeout = 120                    
    cn_Sprv.Open ("File Name=" & SprPth)

    Set rst_sprv = New adodb.Recordset

 rst_sprv.Open "SELECT ID,CODE,KOD_BANK,KOD_BRANCH,NAME_SWIFT,ISO_DIG,ISO_LAT2,ISO_LAT3,SUBTYPE,CO_TYPE,CB_DATE,CE_DATE " & _
                  "FROM SW_LIST ORDER BY CODE, CB_DATE ", _
    cn_Sprv, adOpenStatic, adLockReadOnly



Вот второй вариант работает как часы, но временной показатель не айс. Вот я и подумал, а нельзя ли их скрестить ну чтонить вроде того:
Код: vbnet
1.
2.
3.
4.
5.
6.
Set cn_Sprv = CreateObject("ADODB.Connection") 
    cn_Sprv.CommandTimeout = 120                    
    cn_Sprv.Open ("File Name=" & SprPth)

CnBase.Execute "SELECT * INTO #tmpsw " & _
                    "FROM OPENROWSET ('" & cn_Sprv & "','SELECT * FROM sw_list') "



Пока мои эксперименты успехом не увенчались, строки подключения имеют несколько различное написание в коде и в UDL.
...
Рейтинг: 0 / 0
Вставка набора записей.
    #38210644
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_men,
тут провел эксперимент, в котором согласно сайт строк подключений
получил ваот такой запрос

Код: vbnet
1.
2.
3.
SELECT * 
FROM 
	OPENROWSET ('MSDASQL','DSN=swlist;Uid=myUsername;Pwd=;','SELECT * FROM sw_list') x


и как бы проблем нет
возможно у Вас проблемы в том, что в Вашей строке подключения есть и DNS и параметры прописанные руками, которые могли входить в конфликт, но утверждать не берусь

потестируйте

Alex_men Вот я и подумал, а нельзя ли их скрестить ну чтонить вроде того
в принципе наверное да. Но нужно иметь ввиду, что передвать надо строку подключения, а не сам объект
что-то вроде такого

Код: vbnet
1.
2.
CnBase.Execute "SELECT * INTO #tmpsw " & _
                    "FROM OPENROWSET ('" & cn_Sprv.Provider & "','"  & cn_Sprv.ConnectionString& "','SELECT * FROM sw_list') "



но мне кажется это хуже
...
Рейтинг: 0 / 0
Вставка набора записей.
    #38210681
Alex_men
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
HandKot,

Оба варианта мимо.
1) Ошибка та же осталась
2) В connectionstring уже присутствует провайдер, далее я так думаю ошибка возникает из-за того что имеем в строке подключения вот такую конструкцию: автор Extended Properties="DSN=...;...;". Т.е. либо дело в кавычках либо в самой строке
...
Рейтинг: 0 / 0
Вставка набора записей.
    #38210701
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_men, сложно сказать

может вернуться к предложенному варианту с линкед сервером?
...
Рейтинг: 0 / 0
Вставка набора записей.
    #38210735
Alex_men
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
HandKot,

Да уже параллельно делаю
...
Рейтинг: 0 / 0
Вставка набора записей.
    #38211072
Alex_men
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Любопытно пошла ошибка синтаксиса при вот таком подходе:
HandKot
Код: vbnet
1.
2.
CnBase.Execute "SELECT * INTO #tmpsw " & _
                    "FROM OPENROWSET ('"  & cn_Sprv.ConnectionString& "','SELECT * FROM sw_list') "





Пишет "Ошибка синтаксиса возле ')' "
...
Рейтинг: 0 / 0
Вставка набора записей.
    #38211095
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_men
Код: vbnet
1.
"FROM OPENROWSET ('"  & cn_Sprv.ConnectionString & "','SELECT * FROM sw_list') "

?
...
Рейтинг: 0 / 0
Вставка набора записей.
    #38211115
Alex_men
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTM,

Экспериментирую я ^)
...
Рейтинг: 0 / 0
Вставка набора записей.
    #38211117
Alex_men
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTM,

Если есть информация в плоть до "так делать нельзя" принимаю, но прошу объяснить почему
...
Рейтинг: 0 / 0
Вставка набора записей.
    #38211160
Alex_men
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTM,

если насчет пробела, то просто опечатка
...
Рейтинг: 0 / 0
Вставка набора записей.
    #38212172
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_men, еще вспомнил, что наилучший результат дает провайдер vfpoledb , а не MSDASQL (бывало часть глюков исчезало)
попробуйте с ним
...
Рейтинг: 0 / 0
Вставка набора записей.
    #38213022
Alex_men
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
HandKot,

Вот какую штуку нашел, ведь все работает в проге то! НО! Но только до тех пор пока я общаюсь с тестовой базой на своей машине. Как только я перехожу к общению с базой на сервере. вылезает ошибка. Нашел тут тему Shocker.Pro про MDAC. попробую копнуть в этом направлении.
...
Рейтинг: 0 / 0
Вставка набора записей.
    #38213029
Alex_men
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
HandKot,

Уточняю меняется место положение SQL базы. DBF остается на локале в папке импорт.
...
Рейтинг: 0 / 0
Вставка набора записей.
    #38213211
Alex_men
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
HandKot,

Нет в самом деле непонятно, версии серверов, версии баз одинаковы. Но как только база на сервере все запрос не работает. Хотя и на сервере и на локале права одинаковы.
...
Рейтинг: 0 / 0
Вставка набора записей.
    #38213849
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_menHandKot,

Нет в самом деле непонятно, версии серверов, версии баз одинаковы. Но как только база на сервере все запрос не работает. Хотя и на сервере и на локале права одинаковы.

возможно на сервере нет конкреного провайдера или он отличается от локального
было такое, на одинаковых серверах один и тот же запрос, на одном работал, на другом нет. проблема, по-моему, тогда крылась в различных установленных провайдерах
...
Рейтинг: 0 / 0
Вставка набора записей.
    #38213886
Alex_men
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
HandKot,

А я первый раз, с таким столкнулся. Самое интересное все остальное работает и выборка и вставка и падейт. Все кроме этого запроса.

А как это можно проверить? Просто если смотрю версии драйверов на сервере и на локале они идентичны, версии sql серверов идентичны полностью, включая все сервиспаки. Единственное дата драйверов на сервере 2007 а на локале 2008. Как их синхронизировать.
...
Рейтинг: 0 / 0
Вставка набора записей.
    #38213902
Alex_men
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
HandKot,

И здесь еще вопрос какой именно драйвер плющит. SQL базы или доступа к DBF. Хотя DBF по идее то должна на клиентской части перевариваться или все таки драйвер с сервера берет и для DBF тоже?
...
Рейтинг: 0 / 0
Вставка набора записей.
    #38214060
Alex_men
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
HandKot,

В общем заменил Microsoft dBase driver (dbf) на Microsoft Visual FoxPro driver (dbf) и теперь работает и там и там.
...
Рейтинг: 0 / 0
Вставка набора записей.
    #38214143
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_menHandKot,

И здесь еще вопрос какой именно драйвер плющит. SQL базы или доступа к DBF. Хотя DBF по идее то должна на клиентской части перевариваться или все таки драйвер с сервера берет и для DBF тоже?
все запросы выполняются на сервере и никак не на клиенте. т.к запрос с доступом к ДБФ (openrowset), то именно драйвер ДБФ и кривит

Alex_menзаменил Microsoft dBase driver (dbf) на Microsoft Visual FoxPro driver (dbf) и теперь работает и там и там
как уже говорил, Microsoft dBase driver (dbf) бывает глючит и для работы с ДБФ лучше использовать Microsoft Visual FoxPro driver (dbf)
...
Рейтинг: 0 / 0
Вставка набора записей.
    #38214258
Alex_men
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
HandKot,

Спасибо за помощь ! :)
...
Рейтинг: 0 / 0
20 сообщений из 45, страница 2 из 2
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Вставка набора записей.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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