Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / массовое добаление записей в MS SQL / 7 сообщений из 7, страница 1 из 1
25.08.2004, 14:38
    #32664880
harr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
массовое добаление записей в MS SQL
Написал процедуру массового добавления данных из Views в SQL
используя SCAN
SCAN
Store SQLConnect('SQL') To gnConnHandle

strSQl=""
strSQl="UPDATE NACLSPEC "
strSQl=strSQl+"SET ShopIndex=?mShopIndex,InOut=?mInOut,HeadIndex=?mHeadIndex,CardArticul=?mCardArticul, "
strSQl=strSQl+ляляля

=SQLEXEC(gnConnHandle,strSQl)
=SQLDisconnect(gnConnHandle)

ENDSCAN
Кол-во записей >=100, но в какойто момент выходит окошко с просьбой подключиться с серверу (Логин и пароль) нажимаеш OK, и процесс идёт дальше. Пробывал SQLConnect() выносить перед SCAN, тоже самое.
Как это побороть? Кто как решает проблему массового добавления данных в SQL
...
Рейтинг: 0 / 0
25.08.2004, 18:03
    #32665511
vklepko
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
массовое добаление записей в MS SQL
Наверное в
Код: plaintext
Store SQLConnect('SQL') To gnConnHandle
gnConnHandle получает отрицательное значение...
Кто такой 'SQL' - ConnectionName или DataSourceName? Какие на нём свойства?
...
Рейтинг: 0 / 0
25.08.2004, 19:04
    #32665640
Oskars
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
массовое добаление записей в MS SQL
poprobui poljzovatsa etim: SQLPREPARE()

gcAuthor = 'Arnold'

= SQLPREPARE(gnConnHandle, 'SELECT * FROM authors WHERE au_lname = ?gcAuthor')
= SQLEXEC(gnConnHandle)

...

gcAuthor = 'Jones'
= SQLEXEC(gnConnHandle)

Ja etim 1000 zapisei dobovljal i menjal..

--
Oskars
+371 9251562
Latvia, Riga
...
Рейтинг: 0 / 0
26.08.2004, 07:09
    #32665834
harr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
массовое добаление записей в MS SQL
< gnConnHandle получает отрицательное значение...
< Кто такой 'SQL' - ConnectionName или DataSourceName? Какие на нём свойства?

'SQL' это ConnectionName, через ODBC, наверно нужно каждый раз ставить
на проверку SQLConnect('SQL'), но SCAN должен ждать пока функция не выполнеться или не так?
...
Рейтинг: 0 / 0
26.08.2004, 12:56
    #32666499
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
массовое добаление записей в MS SQL
Oskars
По поводу SQLPrepare() для MS SQL 2000 есть сомнения. Почитай дискуссию

http://forum.foxclub.ru/read.php?f=5&i=91085&t=91085

harr
Владимир ( vklepko ) правильно заметил, что приглашение о вводе пароля появляется только в случае, если не удалось установить соединение. Т.е. gnConnHandle получил значение -1

Вообще-то, постоянно устанавливать и разрывать связь внутри цикла - это не есть хорошее решение. Логично вынести все разовые операции во вне цикла.

По умолчанию, FoxPro всегда работает в "синхронном" режиме, т.е. он всегда ждет завершение выполнения каждой команды, прежде чем перейти к выполнению следующей. Так что, SCAN действительно будет ждать пока не выполниться SQLConnect().

Почитай еще темы
http://www.sql.ru/forum/actualthread.aspx?tid=50269
http://www.sql.ru/forum/actualthread.aspx?tid=88752

Там дебя должны интересовать настройки SQLSETPROP() для подавления выдачи приглашений о вводе пароля в случае ошибки соединения.
...
Рейтинг: 0 / 0
26.08.2004, 14:35
    #32666883
Crip
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
массовое добаление записей в MS SQL
2ВладимирМ
Полезное замечание по поводу SQLPREPARE.
Но в данном случае как раз SQLPREPARE должен помочь. Очень сомнительно, что insert будет зависеть от конкретных значений параметров.

Правда с select совсем другая история ибо планы могут меняться взависимости от статистик. Типичный пример места где SQLPREPARE лучше не применять это запрос по диапазону дат, сервер не зная конкретных значений всегда выберет сканирование.
...
Рейтинг: 0 / 0
02.09.2004, 15:32
    #32677797
harr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
массовое добаление записей в MS SQL
Спасибо всем!!! Помогла такая конструкция
Вынес Store SQLConnect('SQL') To gnConnHandle
За пределы SCAN в начало процедуры
а =SQLDISCONNECT(gnConnHandle) в конец процедуры
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / массовое добаление записей в MS SQL / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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