powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Выполнение скрипта на MSSQL
9 сообщений из 9, страница 1 из 1
Выполнение скрипта на MSSQL
    #40025252
glamis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто-нить знает как выполнить файл-запрос на MSSQL?
Есть qpr-файл, есть соединение с сервером. Не знаю как запустить запрос.
Хотелось бы что-то типа

execute \\server\resurs\qqq.qpr
...
Рейтинг: 0 / 0
Выполнение скрипта на MSSQL
    #40025277
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что внутри qqq.qpr посмотри, там наверно текстом "select ..."
...
Рейтинг: 0 / 0
Выполнение скрипта на MSSQL
    #40025280
glamis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,
Там нормальный запрос: Insert, Update, Select
просто может быть длинный поэтому хочу его через файл бросить.

Не знаю как запустить скрипт из промежуточного файла.
Есть ссылка на sqlcmd - запускаю - пишет нет такой процедуры((
...
Рейтинг: 0 / 0
Выполнение скрипта на MSSQL
    #40025401
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
glamis,

Принцип такой:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CREATE CURSOR test (f1 M)

APPEND BLANK IN test 

replace f1 WITH TRIM(f1) + 'Create table #test (f1 int)' + CHR(13) IN test
replace f1 WITH TRIM(f1) + 'insert into #test values(1)' + CHR(13) IN test
replace f1 WITH TRIM(f1) + 'select * from #test ' + CHR(13) IN test
replace f1 WITH TRIM(f1) + 'Drop table #test ' + CHR(13) IN test

SQLEXEC(hnd, test.f1) 



либо из файла в МЕМО затяни скрипт.
...
Рейтинг: 0 / 0
Выполнение скрипта на MSSQL
    #40025426
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если размер QPR не очень большой, то можно проще

Код: sql
1.
SQLEXEC(hnd, fileToStr("\\server\resurs\qqq.qpr")) 



Т.е. на сервер передаешь не ссылку на файл, а содержимое файла. Собственно текст запроса

В самом MS SQL тоже есть функция exec, которая позволяет выполнять предварительно сформированную строку. Но из среды SQL возникает вопрос извлечения содержимого файла из него самого. Сам по себе MS SQL этого не умеет. Надо будет использовать сторонние библиотеки

Указать файл как внешнюю процедуру для MS SQL - не получится. Может и есть способ, но я такого не знаю.
...
Рейтинг: 0 / 0
Выполнение скрипта на MSSQL
    #40025429
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но вообще-то, специально для такого случая сделаны скобки TEXT..ENDTEXT. Внутри этих скобок пишешь текст как в обычном файле, но это интерпретируется как текст в переменной памяти. А потом просто передаешь эту переменную в SQL

Код: sql
1.
2.
3.
4.
5.
6.
7.
TEXT TO lcText NOSHOW  
select field1, field2
from table
where table.field3 > 1
ENDTEXT  

SQLEXEC(hnd, m.lcText) 



У текстовых скобок TEXT..ENDTEXT есть еще дополнительные опции для формирования текста. Посмотри в Help

Кроме того, можно и просто текстовые константы складывать

Код: sql
1.
2.
3.
4.
5.
lcText = " select field1, field2" + ;
         " from table" + ;
         " where table.field3 > 1"

SQLEXEC(hnd, m.lcText) 



Длина одной текстовой константы (то, что в кавычках) не может быть больше 254 символов, но вот длина итоговой текстовой переменной lcText может быть до 16МБ
...
Рейтинг: 0 / 0
Выполнение скрипта на MSSQL
    #40025430
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
glamis
Dima T,
Там нормальный запрос: Insert, Update, Select
просто может быть длинный поэтому хочу его через файл бросить.

Нельзя так делать: файл это что-то на твоем диске, SQL-сервер на другом компе, т.е. этот файл с запросом надо как-то передать по сети, поэтому все равно надо передать содержимое файла.
Читай содержимое и SQLEXEC()
...
Рейтинг: 0 / 0
Выполнение скрипта на MSSQL
    #40025437
glamis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,

это решается просто - файл выкладывается на ресурс, доступный SQL и указывается его полный путь.
В принципе, в Studio я все это проделал - только файл обозвал .sql Загрузил и выполнил.
Но хоцца все это из SQLEXEC сделать.
...
Рейтинг: 0 / 0
Выполнение скрипта на MSSQL
    #40025466
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
glamis
Но хоцца все это из SQLEXEC сделать.

ВладимирМ уже написал 22243976 как это сделать
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Выполнение скрипта на MSSQL
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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