Bind и loop

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
gopstop2007
Полимат
Сообщения: 1830
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 28 раз
Поблагодарили: 10 раз

Bind и loop

Сообщение gopstop2007 »

Надо пробиндить список созданный в файле MyFile.tps, что то не пляшет, как правильно сделать?

Код: Выделить всё

DATA
MyFile              FILE,DRIVER('TOPSPEED'),NAME('MyFile.tps'),PRE(MyF),BINDABLE,THREAD !                    
idKEY                  KEY(MyF:idKey),NOCASE,OPT,PRIMARY  !                    
Myfield1		STRING(30)    
Myfield2		STRING(30)
	END

CODE
	SET(MyFile)
	LOOP
    		NEXT(Myfile); IF ERRORCODE() THEN BREAK END
    		BIND(MyF:Myfield1,MyF:Myfield2) 
	END
для дальнейшего использования в Evaluate
Последний раз редактировалось gopstop2007 19 Февраль 2016, 19:21, всего редактировалось 1 раз.
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8090
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 29 раз
Поблагодарили: 98 раз

Bind и loop

Сообщение Игорь Столяров »

Ничего не понятно. Что у Вас называется словом "пробиндить" ? ;) Зачем ?
Где объявление Myfield1,Myfield2 ? Это имена чего и где они описаны ?

В операторе BIND, в качестве первого параметра указывается строковая константа.
Второй параметр - сопоставляемая константе переменная (или имя процедуры).
Какой смысл заложен в вызов BIND(Myfield1,Myfield2) ?!
Make Clarion Great Again ! 😎
gopstop2007
Полимат
Сообщения: 1830
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 28 раз
Поблагодарили: 10 раз

Bind и loop

Сообщение gopstop2007 »

Исправился, см. выше :)
Есть приложение в котором в текстовом поле описываю запрос

Код: Выделить всё

'SELECT '& CLIP(A_B_id)&' FROM '&CLIP(A_B_category)&';'
сама строка идет после Evaluate на сервер

Код: Выделить всё

s" = Evaluate( 'SELECT '& CLIP(A_B_id)&' FROM '&CLIP(A_B_category)&';')
значения в CLIP(A_B_id) и CLIP(A_B_category) подставляются из MyFile - MyF:Field1 и MyF:Field2 соответственно
Смысл в том, что у меня большой список BIND(A_B,B_B).
A_B (MyF:Field1) - строковые константы у меня постоянны,
а вот в B_B (MyF:Field2) - подставляю в зависимости от условий, и список может пополнятся :)

Код: Выделить всё

BIND('A_B_id',???)
BIND('A_B_category',???)
....
BIND('A_B',B_B)
Не знаю донес ли я Вам свою мысль :)
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8090
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 29 раз
Поблагодарили: 98 раз

Bind и loop

Сообщение Игорь Столяров »

Да, спасибо, теперь понятно.

Может быть я не прав и пусть меня исправят ... но для BIND в качестве первого параметра
должна быть указана символьная константа, а не имя символьной переменной, содержащей имя.
Впрочем, это есть в справке.
Make Clarion Great Again ! 😎
kreator
✯ Ветеран ✯
Сообщения: 5190
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Bind и loop

Сообщение kreator »

В bind первым параметром должна быть строковая константа. Loop здесь не пойдёт. Без Loop'а напишите и всё.
We are hard at work… for you. :)
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3306
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 51 раз
Контактная информация:

Bind и loop

Сообщение Дед Пахом »

На время оставим синтаксис Evaluate, я понять не могу, какая цель у
gopstop2007 писал(а): s" = Evaluate( 'SELECT '& CLIP(A_B_id)&' FROM '&CLIP(A_B_category)&';')
Просто передать на сервер 'SELECT '& CLIP(A_B_id)&' FROM '&CLIP(A_B_category)&';' что мешает?
С уважением, ДП
gopstop2007
Полимат
Сообщения: 1830
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 28 раз
Поблагодарили: 10 раз

Bind и loop

Сообщение gopstop2007 »

Дед Пахом писал(а):Просто передать на сервер 'SELECT '& CLIP(A_B_id)&' FROM '&CLIP(A_B_category)&';' что мешает?
Я так и делаю :) Просто систематизировать хотелось, запросы стандартные, только меняются название таблиц и полей, ковыряться в каждом запросе или пробежался по по списку - изменил и ничего лишнего, все в одном месте. А так в каждом запросе менять, их больше 30 :)
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1412
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 12 раз
Поблагодарили: 2 раза
Контактная информация:

Bind и loop

Сообщение RaFaeL »

Так не надо ни bind ни evaluate просто собери по файлу строку запроса и отправь через prop:sql
Ответить