|
Проблема передачи длинных запросов через команду SQLEXEC
|
|||
---|---|---|---|
#18+
Как передать с помощью этой команды больше 255 символов на SQL Server. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2002, 11:08 |
|
Проблема передачи длинных запросов через команду SQLEXEC
|
|||
---|---|---|---|
#18+
О чем речь то? SQLexec() - чья функция? Если VFP - то до 16 мегабайт можно заслать так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2002, 14:34 |
|
Проблема передачи длинных запросов через команду SQLEXEC
|
|||
---|---|---|---|
#18+
>lcSQL = "select ....." && Допустимая длина строки - 16М Maximum length of a string literal - 255. Так что без конкатенации не обойтись. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2002, 15:29 |
|
Проблема передачи длинных запросов через команду SQLEXEC
|
|||
---|---|---|---|
#18+
1.Дорогой NNN, не путай пожалуйста Божий дар с яйцами :0) Длина символьной строки (переменной): Maximum # of characters per character string or memory variable (см. топик Visual FoxPro System Capacities). А литерал - это символьная константа. 2. Я САМ отправлял таким образом на MS SQL сервер команды длиной в несколько десятков килобайт - все отлично работало. Таким образом производилась конвертация приличного массива данных в скрипт, который и вставлял собственно данные в таблицы на сервере за одну транзакцию. Не быстро, но надежно и подходяще для разовой проги . А вообще (ради эксперимента) - пробовали заслать туда команду длиной 10МБ. Тоже сожрал. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2002, 15:42 |
|
Проблема передачи длинных запросов через команду SQLEXEC
|
|||
---|---|---|---|
#18+
> 1.Дорогой NNN, не путай пожалуйста Божий дар с яйцами :0) Это называется валить с больной головы на здоровую :) У тебя в примере как раз символьная константа, на что я и обратил внимание. А вообще (ради эксперимента) - пробовали заслать туда команду длиной 10МБ. Тоже сожрал. В качестве эксперимента советую вбить эти 10 мегов ручками одной строкой, а заодно зайти в библиотеку и почитать словарь иностранных слов. И уж совсем, ты удивишься, что в переменную можно загнать не 16М, а 2Г, но это к делу не относится.. PS Кстати, по существу вопроса, для сокращения длины передаваемой строки можно использовать параметеризированные запросы. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2002, 17:03 |
|
Проблема передачи длинных запросов через команду SQLEXEC
|
|||
---|---|---|---|
#18+
Насчет примера - ты прав. Это было сделано для ясности, но вышло противоречие. Каюсь. Насчет 2 ГБ в символьную переменную (Char) - это как же, интересно? Попробуй: Код: plaintext 1.
Насчет параметризированных запросов: что быстрее? 1. Код: plaintext 1. 2. 3. 4. 5. 6.
2. Код: plaintext 1. 2. 3. 4. 5. 6. 7.
ЗЫ И еще не понял я наезда насчет библиотеки, но спишем на эмоции. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2002, 18:03 |
|
Проблема передачи длинных запросов через команду SQLEXEC
|
|||
---|---|---|---|
#18+
2 NNN Взглянул на свой топик и увидел - похоже начинается флейм. Завершим тему. Только вот насчет 2ГБ в переменной - как? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2002, 18:13 |
|
Проблема передачи длинных запросов через команду SQLEXEC
|
|||
---|---|---|---|
#18+
2 Jimmy > Взглянул на свой топик и увидел - похоже начинается флейм. Завершим тему. С открытыми вопросами? А хорошо ли это? :) Я понимаю, что фокспро и флейм в данном форуме являются ругательствами, но для меня они стали привычкой :) > Насчет параметризированных запросов: что быстрее? Честно скажу - не знаю. Похоже, что второй вариант. Но я бы выбрал первый (если потеря скорости была бы некритична для пользователя) - он понятнее при чтении кода (лично для меня). Вообще, у параметризации можно выделить 3 преимущества: 1. достаточно короткая и понятная строка; 2. не требуется преобразование различных типов в строку; 3. возможность использования выходных параметров хранимых процедур. В некоторых случаях за счет этого можно получить прирост скорости. > Только вот насчет 2ГБ в переменной - как? Может быть ты удивишься, но это работает: Код: plaintext 1. 2. 3.
А 2ГБ - это ограничение размера файла в WIN32, нужно всего лишь найти подоходящий файл :) Код: plaintext 1. 2.
Правда, особого практического применения я в этом не вижу. >ЗЫ И еще не понял я наезда насчет библиотеки, но спишем на эмоции. Абсолютно верно, надо же мне было чем-то ответить на Божий дар? :) Удачи! ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2002, 09:46 |
|
Проблема передачи длинных запросов через команду SQLEXEC
|
|||
---|---|---|---|
#18+
2 NNN Второй вариант я использовал для конвертера справочных данных и вот почему: -- один запрос на сервер -- этот скрипт я сохранил так же и в файл, который был приобщен к скрипту генерации БД, т.е. заскриптовал начальные данные -- дело привычки - я уверен в результате, если посылаю полностью готовую команду, а что там делает Фокс при параметризации запроса - не знаю. В общем - не люблю. Переменные: Код: plaintext 1. 2. 3. 4. 5.
PS Заходи сюда: Российский FoxPro Клуб - здесь Фокс любят и лелеят :0) ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2002, 10:33 |
|
Проблема передачи длинных запросов через команду SQLEXEC
|
|||
---|---|---|---|
#18+
2 Jimmy Каждому овощу - свой фрукт, в твоем случае я поступил бы также. > а что там делает Фокс при параметризации запроса - не знаю. Если я не ошибаюсь, то он перекладывает всю работу на ODBC. Кстати, при старых драйверах можно наткнуться на траблы. > А вот здесь - ошибка (String is too long to fit) Зависит от версии. Проверил на 5-м, действительно вылезает ошибка, а на 7-м все работает. У тебя видимо 6-й. > PS Заходи сюда: Российский FoxPro Клуб - здесь Фокс любят и лелеят :0) ОК, спасибо за приглашение :) ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2002, 11:00 |
|
Проблема передачи длинных запросов через команду SQLEXEC
|
|||
---|---|---|---|
#18+
2 NNN Проверял на VFP7 + SP1, W2000 Pro rus + SP2 ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2002, 15:14 |
|
Проблема передачи длинных запросов через команду SQLEXEC
|
|||
---|---|---|---|
#18+
2 Jimmy Странно все это, у меня точно такая же конфигурация. Хотя на a=a+a+a ошибка все-таки вылетает. Так что строки свыше 16М лучше не использовать, потому как недокументировано и непредсказуемо. На сим топик можно и закрыть. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2002, 15:44 |
|
|
start [/forum/topic.php?fid=56&msg=32063311&tid=2017064]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
164ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
others: | 236ms |
total: | 514ms |
0 / 0 |