Добрый день/вечер/ноч/утро Clarion'щики !
На кларе сижу (C55ee patch G) c 2000 года, написал ряд удачных проектов, используя в программах файлы TPS. Теперь требуется использовать Clarion + MS SQL Server 2000.
А вот в SQL я пока слабо сображаю, вернее если с самим серваком и таблицами/ключами/связями более - менее разобрался, то с использованием хранимых процедур в кларе или получение результата запроса в browse совсем туго. Ткните носом в нужном направлении. Хэлп по Ctrl-F1 читал, prop:sql смотрел, мало чего понял, вернее понял, что не все так просто, как хотелось бы !!!
Хотелось бы четких пояснений на вопросы, например:
- как с клары передать параметр в хранимую процедуру и получить результат выполения в броузере (естественно хранимка "параметризована") (или хотя бы как вызвать эту хранимку)?
- как получить результат SELECT в броузер?
Если кто замылит мне доку с примерами об этом (даже на буржуйском английском) буду тому человеку очень благодарен!
Так же буду очень благодарен за любой совет, подсказку, url, сайт и тд
---
Владислав Волосожар
mailto:vlad@vesco.donetsk.ua
Написал: ClaList(2)
Clarion и MS SQL 2000
Модератор: Andrew™
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Привет Владислав Волосожар
Вызов хп может быть различным для разных sql например для первасива параметры должны заключаться в скобки , а для мс не нужны
Пиши так
Вызов
Если нужно получить не все поля файла , то создавайте view или используйте odbc api
Домашний <soft2@mail.redcom.ru>
Спасибо за ответ
а что я получу в результате вызова хранимой процедуры?
(строка, очередь.... и как этот результат обработать?)
сильно подозреваю, что получу строку, а как ее обработать?
или я зря "сильно подозреваю"?
Владислав Волосожар
Написал: ClaList(2)
Вызов хп может быть различным для разных sql например для первасива параметры должны заключаться в скобки , а для мс не нужны
Пиши так
Код: Выделить всё
хп procedure a@ int , @b char(10)
as
select * from file where file.a=@a and file.b=@b
Вызов
Код: Выделить всё
file{prop:sql}='exec procedure ' & a & ',' & '''' & b &''''
loop
next(file)
if errorcode() then break .
обработка
end
Если нужно получить не все поля файла , то создавайте view или используйте odbc api
Домашний <soft2@mail.redcom.ru>
Спасибо за ответ
а что я получу в результате вызова хранимой процедуры?
(строка, очередь.... и как этот результат обработать?)
сильно подозреваю, что получу строку, а как ее обработать?
или я зря "сильно подозреваю"?
Владислав Волосожар
Написал: ClaList(2)
Считайте что вы получили файл урезанный на значение после where.
Если where нет , то получили полный файл .
При next(file) получаете в буфер файла значения полей ,
почно так как обычное чтение файла .
Далее эти поля вы присваиваете полям очереди (queue) потом идет add(queue) и потом отображаете на экране , ну или что хотите.
Вообще не очень понятен вопрос .
Файл вы для чего читаете ?
Домашний
Ответ на вопрос /если я правильно понял вопрос /:
Есть весы, которые автоматически взвешивают автомобили с грузом
есть таблица Т1 на серваке примерно такой структуры, куда весы сливают инфу о взвешиваемом авто
есть ряд записей в таблице, например
вот хотел на основе этой таблицы провести выборку данных и показать пользователю уже в итоговой таблице Т2 различную инфу, как то количество ходок, кол-во груза и тд
итоговая таблица будет иметь примерно такой вид:
к тому же в данной задаче присутсвует очень много доп ньюансов, например, поломка весов и тд
я хочу /наверно так и сделаю/ хранимку, которая будет "выливать" инфу из таблицы Т1 в Т2 учитывая различные "подвыборки" и тд в связи с этим возникли все вышеперечисленные вопросы
Владислав Волосожар
Ну да , все подробно .
Тогда вопрос с какого боку нужен кларион ?
Делайте заполнение T2 прямо в хп .
Вы сделаете вырезку из того что у вас уже есть тогда можно будет подсказать , а так не ясно в чем
проблема ?
Домашний
это правильно, я так и собираюсь сделать
только вот:
° пользователь, которому нужны результирующие данные - это мастер в цехе, который находится (цех) за 8 км от головной конторы, в которой расположен SQL сервак с данными
° пользователю (мастеру смены) требуется заполнить путевые листы водителям в конце смены, где (в путевом листе) будет указано много лабуды всякой, в том числе обязательно данные из результирующей таблицы Т2
° пользователь по определению - тупой чайник полный, ему требуется всего то кнопку нажать - получить результат движения транспорта на весах на экране и тд
° требуется создать клиентскую прогу, которая могла бы автономно работать в критических условиях (под этими условиями я понимаю как непроходимая тупость пользователя, так и "замусоренные" данные в исходной таблице Т1)
все данные из Т1 в Т2 будут переливаться хранимкой, которую вызовет пользователь, когда, например, нажмет на кнопку
в принципе, можно было и триггер повесить на insert в Т1, но есть ряд существенных ньюансов по поводу триггера, тк работа автовесов в случае поломки довольно специфична и тд
просто у меня был вопрос о взаимодействии клары и sql
Владислав Волосожар
--
Всего наилучшего, porutchik mailto:porutchik@mail.primorye.ru
http://personal.primorye.ru/porutchik/
---------------------------------------------------------
Советские боевые слоны - самые боевые слоны в мире!
Написал: ClaList(2)
Если where нет , то получили полный файл .
При next(file) получаете в буфер файла значения полей ,
почно так как обычное чтение файла .
Далее эти поля вы присваиваете полям очереди (queue) потом идет add(queue) и потом отображаете на экране , ну или что хотите.
Вообще не очень понятен вопрос .
Файл вы для чего читаете ?
Домашний
Ответ на вопрос /если я правильно понял вопрос /:
Есть весы, которые автоматически взвешивают автомобили с грузом
есть таблица Т1 на серваке примерно такой структуры, куда весы сливают инфу о взвешиваемом авто
Код: Выделить всё
DateTime Id1 Id2 Id3 ... W
есть ряд записей в таблице, например
Код: Выделить всё
DateTime Id1 Id2 Id3 ... W
12/02/04 8:00 1 1 1 100 <-машина (Id1) привезла груз (Id2) на склад /вес (W) с грузом = 100/
12/02/04 8:10 1 1 0 50 <-машина (Id1) выехала со склада /вес (W) пустой машины = 50/
12/02/04 9:00 1 1 1 120 Id3 - признак заезда/выезда (1)-полной (0)-пустой машины
12/02/04 9:10 1 1 0 49
12/02/04 9:20 1 1 1 150
12/02/04 9:30 1 1 0 52
...
12/02/04 9:15 2 1 1 45
12/02/04 9:25 2 1 0 30
12/02/04 10:15 2 1 1 145
12/02/04 10:25 2 1 0 56
...
PrimaryKey в таблице (DateTime,Id3)
вот хотел на основе этой таблицы провести выборку данных и показать пользователю уже в итоговой таблице Т2 различную инфу, как то количество ходок, кол-во груза и тд
итоговая таблица будет иметь примерно такой вид:
Код: Выделить всё
Id1 машины Номер ходки Время заезда Время выезда Полезный груз
1 1 12/02/04 8:00 12/02/04 8:10 50
1 2 12/02/04 9:00 12/02/04 9:10 71
...
к тому же в данной задаче присутсвует очень много доп ньюансов, например, поломка весов и тд
я хочу /наверно так и сделаю/ хранимку, которая будет "выливать" инфу из таблицы Т1 в Т2 учитывая различные "подвыборки" и тд в связи с этим возникли все вышеперечисленные вопросы
Владислав Волосожар
Ну да , все подробно .
Тогда вопрос с какого боку нужен кларион ?
Делайте заполнение T2 прямо в хп .
Вы сделаете вырезку из того что у вас уже есть тогда можно будет подсказать , а так не ясно в чем
проблема ?
Домашний
это правильно, я так и собираюсь сделать
только вот:
° пользователь, которому нужны результирующие данные - это мастер в цехе, который находится (цех) за 8 км от головной конторы, в которой расположен SQL сервак с данными
° пользователю (мастеру смены) требуется заполнить путевые листы водителям в конце смены, где (в путевом листе) будет указано много лабуды всякой, в том числе обязательно данные из результирующей таблицы Т2
° пользователь по определению - тупой чайник полный, ему требуется всего то кнопку нажать - получить результат движения транспорта на весах на экране и тд
° требуется создать клиентскую прогу, которая могла бы автономно работать в критических условиях (под этими условиями я понимаю как непроходимая тупость пользователя, так и "замусоренные" данные в исходной таблице Т1)
все данные из Т1 в Т2 будут переливаться хранимкой, которую вызовет пользователь, когда, например, нажмет на кнопку
в принципе, можно было и триггер повесить на insert в Т1, но есть ряд существенных ньюансов по поводу триггера, тк работа автовесов в случае поломки довольно специфична и тд
просто у меня был вопрос о взаимодействии клары и sql
Владислав Волосожар
F1 - Database Drivers - SQL Accelerator DriversТак же буду очень благодарен за любой совет, подсказку, url, сайт и тд
--
Всего наилучшего, porutchik mailto:porutchik@mail.primorye.ru
http://personal.primorye.ru/porutchik/
---------------------------------------------------------
Советские боевые слоны - самые боевые слоны в мире!
Написал: ClaList(2)