|
запуск запроса в sql базе
|
|||
---|---|---|---|
#18+
Помогите пожалуйста. Ситуация такая. Несколько запросов с параметрами param_num и param_date в виде блока программы записаны в мемо поле SQL базы. например: dbo.base1.fiel_mem Вопрос: Как из фокс про запустить этот блок с передачей туда параметров и забрать оттуда результат в виде таблицы. есть еще вариант, что весь блок программы написанный для sql хранится в переменной фоксы mem_text. Как этот блок запустить из переменной на sql сервере ? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 16:16 |
|
запуск запроса в sql базе
|
|||
---|---|---|---|
#18+
F1 - sqlexec() ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 16:25 |
|
запуск запроса в sql базе
|
|||
---|---|---|---|
#18+
FfffffffffffffffF1 - sqlexec() Покажите синтаксис, если там блок программы состоящий из кучи запросов, создания темповых таблиц и т.д. Простые запросы да, работают, а блок программы - нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 16:31 |
|
запуск запроса в sql базе
|
|||
---|---|---|---|
#18+
Viart, Вытащи из мемо-поля в строку и подставь ее в SQLEXEC. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 16:48 |
|
запуск запроса в sql базе
|
|||
---|---|---|---|
#18+
я не силен в sql, поэтому и спрашиваю подскажите синтаксис, чтобы запустить и блок из переменной , и параметры, и указать куда выгрузить результат. В хелпах не нашел. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 16:57 |
|
запуск запроса в sql базе
|
|||
---|---|---|---|
#18+
Команды блока должны быть разделены символом ;. Все остальное - так же, как и с одной командой. Примеры SQLExec с параметрами есть в Хелпе. Не совсем понятно, как блок без заполненных параметрови может храниться в переменной. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 17:03 |
|
запуск запроса в sql базе
|
|||
---|---|---|---|
#18+
FfffffffffffffffНе совсем понятно, как блок без заполненных параметрови может храниться в переменной.Ну хранится там строка, где есть к-либо имена переменных (параметров). Перед стартом sqlexec им присваиваются к-либо значения... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 17:06 |
|
запуск запроса в sql базе
|
|||
---|---|---|---|
#18+
Пусть автор лучше приведет пример. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 17:11 |
|
запуск запроса в sql базе
|
|||
---|---|---|---|
#18+
Viartя не силен в sql, поэтому и спрашиваю подскажите синтаксис, чтобы запустить и блок из переменной , и параметры, и указать куда выгрузить результат. В хелпах не нашел.Почему по форуму не поискал? читай, допиливай самостоятельно. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 17:20 |
|
запуск запроса в sql базе
|
|||
---|---|---|---|
#18+
вот маленький кусочек: create table #tmp ( имена полей ) insert into #tmp select поля from таблица where ...date=@@@param_date and ... declare @mem1 ... begin select top 1 ... SET @CMD = 'alter table #tmp ' + ... EXECUTE(@CMD) select * from #tmp - здесь вывод результата. все это хранится в мемо поле одной из записи как из фокспро это запустить? Как ни пробую, не получается. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 17:24 |
|
запуск запроса в sql базе
|
|||
---|---|---|---|
#18+
*/bdConn Номер соединения с сервером m.cursor = "TempCursor" && Имя сурсора, если суда будет формироваться ответ сервера m.sqlval = <Имя таблицы>.<Имя поля Memo> && Строка запроса из мемо-поля mmm = SQLEXEC(bdConn, m.sqlval, m.cursor) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 17:34 |
|
запуск запроса в sql базе
|
|||
---|---|---|---|
#18+
Как вы предполагаете параметры заменять значениями? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 17:38 |
|
запуск запроса в sql базе
|
|||
---|---|---|---|
#18+
Дед Евгений*/bdConn Номер соединения с сервером m.cursor = "TempCursor" && Имя сурсора, если суда будет формироваться ответ сервера m.sqlval = <Имя таблицы>.<Имя поля Memo> && Строка запроса из мемо-поля mmm = SQLEXEC(bdConn, m.sqlval, m.cursor) bdConn Номер соединения с сервером - это ясно m.cursor = "TempCursor" - с этим тоже понятно m.sqlval = <Имя таблицы>.<Имя поля Memo> && Строка запроса из мемо-поля здесь чтобы запустить мемо поле , его еще надо найти - Select * from dbo.ttt where dbo.ttt.id=aaa mmm = SQLEXEC(bdConn, m.sqlval, m.cursor) - а как туда передать параметры? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 17:43 |
|
запуск запроса в sql базе
|
|||
---|---|---|---|
#18+
Туда - никак. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 17:51 |
|
запуск запроса в sql базе
|
|||
---|---|---|---|
#18+
Viartкак из фокспро это запустить? Как ни пробую, не получается.Как пробовали? Вместо from таблица where ...date=@@@param_date and ... напишите Код: sql 1.
Надеюсь, догадаетесь что надо поставить вместо слова Переменная_со_значением_параметра? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 22:20 |
|
запуск запроса в sql базе
|
|||
---|---|---|---|
#18+
Пробовал по разному. По моему фокс просто не прожевывает синтаксис SQL, и вторая причина , нашел в одном из хелпов, длина выражения в SQLEXEC() должна быть не более 255 символов, а блок в мемо поле там наааааамного больше. Тут надо типа SQLEXEC( exec ..... или call .... ) кто знает подскажите. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2012, 09:17 |
|
запуск запроса в sql базе
|
|||
---|---|---|---|
#18+
ViartПробовал по разному.Прелестно. И все пробы были правильными? А Вы знаете эти правильные способы? И мы их все должны угадать?По моему фокс просто не прожевывает синтаксис SQL, А что это такое - синтаксис SQL? Где такой термин увидели? С каких пор у SQL появился один синтаксис? А фоксовый диалект языка SQL не пробовали изучить, а не изобретать или пытаться использховать какой-то другой?и вторая причина , нашел в одном из хелпов, длина выражения в SQLEXEC() должна быть не более 255 символов,Чушь. Ни в одном из хелпов такого нет.а блок в мемо поле там наааааамного больше.Ну и что? Тут надо типа SQLEXEC( exec ..... или call .... ) кто знает подскажите.Уже подсказали. Читать не пробовали? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2012, 09:27 |
|
запуск запроса в sql базе
|
|||
---|---|---|---|
#18+
правильный проходящий :) Я попросил помочь, а не умничать, не знаешь, проходи мимо. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2012, 09:40 |
|
запуск запроса в sql базе
|
|||
---|---|---|---|
#18+
Viart, Не понимаю, зачем хранимые процедуры хранить в мемо - полях? Не лучше ли хранить их в том виде, в каком им и положено быть - в виде хранимых процедур на сервере. И уже в таком виде их вызывать... передавая в них только параметры... И не тянуть все на клиента, чтобы потом отсылать обратно на сервер... Либо, если уж Вам так хочется, напишите хранимую процедуру - оболочку ("фабрику" в терминах С++), которая будет выполнять то, что вы хотите сделать: читать данные с мемо-поля, формировать необходимые команды, передавать необходимые параметры и т.д. Только она будет работать на сервере... А вы ей будете управлять через SqlExec()... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2012, 09:46 |
|
запуск запроса в sql базе
|
|||
---|---|---|---|
#18+
Все не так просто. Есть большой программный комплекс, покупной, в нем есть мастер запросов, который сам все сочиняет и постоянно это переписывает, хранится все это в мемо полях, т.е. изменять под себя эти блоки я не могу. Нужно написать прогу, которая запускала бы эти процессы по моему расписанию и сама сохраняла результаты. вручную все это просто очень муторно. Вот и вся задача. Кто подскажет? Я не очень силен во всем этом. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2012, 10:01 |
|
запуск запроса в sql базе
|
|||
---|---|---|---|
#18+
Viart, Тогда выход только один. Пишите хранимую процедуру (функцию) на сервере и всю работу (поиск записи, из которой читается мемо-поле, формирование команд для запуска, передачу параметров и т.д.) выполняйте в ней. На клиента - передавайте уже результат работы... Делов-то. Только выучить T-SQL... :-))) Или поищите подобную функцию среди хранимых процедур / функций Вашего программного комплекса... Наверняка есть похожий модуль... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2012, 10:37 |
|
запуск запроса в sql базе
|
|||
---|---|---|---|
#18+
Да, наверное что то подобное и придется делать. Спасибо за совет. Примерно в этом направлении и шел. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2012, 10:50 |
|
запуск запроса в sql базе
|
|||
---|---|---|---|
#18+
Viartправильный проходящий :) Я попросил помочь, а не умничать, не знаешь, проходи мимо.Что такое умничать? А что, лучше глупничать и нести чушь как некоторые? Мы таки увидим конкретику или будем обсуждать сферического коня в вакууме? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2012, 11:46 |
|
запуск запроса в sql базе
|
|||
---|---|---|---|
#18+
Sergey SizovМы таки увидим конкретику или ... Так была же "конкретика"... Например, вот: ViartЕсть большой программный комплекс, покупной, в нем есть мастер запросов, который сам все сочиняет и постоянно это переписывает, хранится все это в мемо полях, т.е. изменять под себя эти блоки я не могу. Нужно написать прогу, которая запускала бы эти процессы по моему расписанию и сама сохраняла результаты. вручную все это просто очень муторно. Вот и вся задача. Кто подскажет? Я не очень силен во всем этом. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2012, 12:04 |
|
запуск запроса в sql базе
|
|||
---|---|---|---|
#18+
ViartПробовал по разному. нашел в одном из хелпов, длина выражения в SQLEXEC() должна быть не более 255 символов, Вы этот хелп немного не правильно поняли... Да, на самом деле там сказано: Help...check to see if it exceeds the maximum length of a string literal in Visual FoxPro, which is 255 characters. Longer strings will cause a "Command contains unrecognized phrase/keyword" error. However, you can pass long SQL statements if you break them up into several concatenated literals... Т.е. длина выражения должна быть не более 255 символов. Но, если это таки произошло, Вы можете разбить длинную строку на несколько строк меньшего размера и объединить их в SqlExec()... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2012, 12:14 |
|
|
start [/forum/topic.php?fid=41&msg=38072831&tid=1583267]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
53ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 168ms |
0 / 0 |