|
|
|
Можно наивный вопросик
|
|||
|---|---|---|---|
|
#18+
Вопрос глупый но в конце рабочего дня вхожу в ступор: как выбрать значение из поля таблицы в переменную по условию? select поле from таблица where условие into переменная не прокатывает Если я чайник, я с этим согласен:-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2006, 17:09 |
|
||
|
Можно наивный вопросик
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2006, 17:12 |
|
||
|
Можно наивный вопросик
|
|||
|---|---|---|---|
|
#18+
А просто: переменная=полетаблицы, с использованием IIF,ICASE прокатит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2006, 20:38 |
|
||
|
Можно наивный вопросик
|
|||
|---|---|---|---|
|
#18+
Легко и не напрягаясь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2006, 20:48 |
|
||
|
Можно наивный вопросик
|
|||
|---|---|---|---|
|
#18+
PyroTechnicВопрос глупый но в конце рабочего дня вхожу в ступор: как выбрать значение из поля таблицы в переменную по условию? select поле from таблица where условие into переменная не прокатывает Если я чайник, я с этим согласен:-) select не может не прокатывать. Это как крокодилы не летают. Собственно говоря, IIF(,,) и where в запросе - одно и то-же. select * from Table where Pole='abcd' into cursor MyCur sele MyCur && Если требуется перебор scan MyVar = Pole .... что-то делаем endscan ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2006, 21:17 |
|
||
|
Можно наивный вопросик
|
|||
|---|---|---|---|
|
#18+
то есть я понял, просто выбрать значение поля по условию в переменную нельзя, надо как-то изгаляться, так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2006, 00:41 |
|
||
|
Можно наивный вопросик
|
|||
|---|---|---|---|
|
#18+
PyroTechnicто есть я понял, просто выбрать значение поля по условию в переменную нельзя, надо как-то изгаляться, так? Скорее всего, Вы не совсем точно представляете себе, что Вы имеете и что хотите получить. Результатом запроса в общем случае является несколько строк, поэтому сохранить его можно только в массиве, а не в переменной, как и указал Вам проходящий. Если по выбранному Вами условию будет выбрана лишь одна строка, то и результирующий массив будет состоять лишь из одного элемента. В FoxPro к первому элементу массива можно обращаться по имени массива без индекса, т.е. как к переменной. Что Вы и хотели получить. Но если Вы уверены, что Вашему условию удовлетворяет лишь одна запись, проще воспользоваться командами LOCATE, SEEK или функцией SEEK(). С уважением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2006, 07:12 |
|
||
|
Можно наивный вопросик
|
|||
|---|---|---|---|
|
#18+
Спасибо fox_vik, успокоил вообщем строку выбрал, дальше новый глупый вопрос (может быть) строка есть путь. как его задать я понял, на всякий случай, если не прав - исправьте: SET PATH TO FULLPATH(v_array) Теперь дальше. в этом каталоге находятся таблицы, сформированные при помощи foxpro2.6, карочь в них нет указания на кодовую страницу. при их открытии фокс про эту страницу спрашивает. таблиц 39. причем по замыслу приложения они будут постоянно меняться (в смысле удаляться, а на их место копироваться новые, но такие же). Как убрать этот запрос, подскажите лабуху:-)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2006, 11:42 |
|
||
|
Можно наивный вопросик
|
|||
|---|---|---|---|
|
#18+
и еще вопрос: а можно путь из массива использовать в selecte без предварительного set path что-нибудь типа select * from v_array\table? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2006, 11:46 |
|
||
|
Можно наивный вопросик
|
|||
|---|---|---|---|
|
#18+
PyroTechnicкарочь в них нет указания на кодовую страницу. при их открытии фокс про эту страницу спрашивает. таблиц 39. причем по замыслу приложения они будут постоянно меняться (в смысле удаляться, а на их место копироваться новые, но такие же). Как убрать этот запрос, подскажите лабуху:-)) 1. Нужен обязательно файл config.fp где была бы указана кодовая таблица... CODEPAGE=866 (но может и 1251 в зависимости от того, что Вам надо) Этот файл должен быть там откуда стартует Ваше приложение... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2006, 11:55 |
|
||
|
Можно наивный вопросик
|
|||
|---|---|---|---|
|
#18+
PyroTechnicи еще вопрос: а можно путь из массива использовать в selecte без предварительного set path что-нибудь типа select * from v_array\table? Этот вопрос я не понял... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2006, 11:56 |
|
||
|
Можно наивный вопросик
|
|||
|---|---|---|---|
|
#18+
положил туда (где файлы проекта), перезапустил фокс. спрашивает все равно. может из-за того, что пока проект? или от того что фокс 9-й? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2006, 12:00 |
|
||
|
Можно наивный вопросик
|
|||
|---|---|---|---|
|
#18+
Sergey Ch PyroTechnicи еще вопрос: а можно путь из массива использовать в selecte без предварительного set path что-нибудь типа select * from v_array\table? Этот вопрос я не понял... Ну в смысле мы можем написать select * from c:\temp\table.dbf? а как сделать чтобы в запрос вместо жесткого пути к таблице подставлялся путь из переменной? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2006, 12:02 |
|
||
|
Можно наивный вопросик
|
|||
|---|---|---|---|
|
#18+
PyroTechnicи еще вопрос: а можно путь из массива использовать в selecte без предварительного set path что-нибудь типа select * from v_array\table?В понимании ошибка. Прежде чем использовать команду SELECT... таблицу необходимо открыть в рабочей области FoxPro. Для этого используется команда USE ... в которой и можно (повторяю можно) использовать прямой путь. Но лучше путь до таблиц прописать в CONFIG.FPW - файле строкой SET PATH ... (об этом много говорилось), либо использовать команду SET PATH и тогда можно будет использовать команду USE в которой просто указывать имя таблицы (на мой взгляд это удобнее). И так теперь таблица открыта. Вот теперь можно задавать выборку информации с помощью команды SELECT ... в которой будет использоваться только что открытая таблица. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2006, 12:11 |
|
||
|
Можно наивный вопросик
|
|||
|---|---|---|---|
|
#18+
Извиняюсь ошибся я!!! У меня сработало: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2006, 12:25 |
|
||
|
Можно наивный вопросик
|
|||
|---|---|---|---|
|
#18+
PyroTechnicСпасибо fox_vik, успокоил вообщем строку выбрал, дальше новый глупый вопрос (может быть) строка есть путь. как его задать я понял, на всякий случай, если не прав - исправьте: SET PATH TO FULLPATH(v_array) Если Вы используете в последующих обращениях к таблицам их полный путь, то использовать SET PATH TO нет необходимости. Кроме того, SET PATH TO без ADDITIVE отменит предудущие команды SET PATH TO PyroTechnicТеперь дальше. в этом каталоге находятся таблицы, сформированные при помощи foxpro2.6, карочь в них нет указания на кодовую страницу. при их открытии фокс про эту страницу спрашивает. таблиц 39. причем по замыслу приложения они будут постоянно меняться (в смысле удаляться, а на их место копироваться новые, но такие же). Как убрать этот запрос, подскажите лабуху:-)) Убрать вопрос можно командой SET CPDIALOG OFF На компе, где у Вас установлен VFP9 в папке :\Program Files\Microsoft Visual FoxPro 9\Tools\CPZero\ есть файл cpzero.prg. Включите его в проект. Команда DO cpzero WITH lcFileName,866 установит в таблице, полный путь которой хранится в lcFileName, русскую досовскую кодировку. После этого, даже если в config.fpw будет установлена CODEPAGE=1251, VFP будет правильно читать досовскую таблицу. Т.е. каждый раз перед первым открытием досовской таблицы или ее использованием в SELECT выполните для нее: SET CPDIALOG OFF DO cpzero WITH lcFileName,866 и она откроется без вопросов и с правильной кодировкой. Эта кодировка сохраница в таблице и после ее закрытия. PyroTechnicи еще вопрос: а можно путь из массива использовать в selecte без предварительного set path что-нибудь типа select * from v_array\table? Можно select * from (v_array+"\tablename.dbf") либо select * from (v_array+"\"+lcTableName), если имя таблицы хранится в переменной. Естественно, пути и имена должны быть без конечных/начальных незначащих пробелов. Правильнее будет select * from (ADDBS(v_array)+lcTableName). С уважением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2006, 12:30 |
|
||
|
Можно наивный вопросик
|
|||
|---|---|---|---|
|
#18+
Можно использовать макроподстановку: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2006, 12:30 |
|
||
|
Можно наивный вопросик
|
|||
|---|---|---|---|
|
#18+
Вот же проблема... Ну и попробуй сам! Что мешает? Код: plaintext Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2006, 12:42 |
|
||
|
Можно наивный вопросик
|
|||
|---|---|---|---|
|
#18+
Сорри за неактуальность... Отвлекся... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2006, 12:43 |
|
||
|
Можно наивный вопросик
|
|||
|---|---|---|---|
|
#18+
Да, действительно: Код: plaintext 1. Но, на мой взгляд, чем это неудобно. Тем, что надо помнить перечень всех таблиц, которые учавствуют в SELECT-ах, а эти SELECT-ы могут быть сложными и использовать много таблиц. И по логике эти таблицы скорее всего надо закрывать, чтобы не засоряли. Поэтому я использую выше описанный метод и не заморачиваюсь. Т.е. если открыл таблицу командой USE, то обязательно ее закрываю. Как бы говоря операторные скобки (Begin ... End). Но на вкус и цвет друга нет. Так что каждый по своему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2006, 12:55 |
|
||
|
Можно наивный вопросик
|
|||
|---|---|---|---|
|
#18+
Владимир САМожно использовать макроподстановку: Код: plaintext 1. 2. Такой вариант будет работать до тех пор, пока ни встретится путь с пробелами. Например, для m.v_path=”C:\Program Files\” VFP выдаст ошибку. С уважением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2006, 13:05 |
|
||
|
Можно наивный вопросик
|
|||
|---|---|---|---|
|
#18+
Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2006, 13:23 |
|
||
|
Можно наивный вопросик
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2006, 13:26 |
|
||
|
Можно наивный вопросик
|
|||
|---|---|---|---|
|
#18+
Лучше использовать квадратные скобки Код: plaintext Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2006, 13:29 |
|
||
|
|

start [/forum/topic.php?fid=41&fpage=219&tid=1590138]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
20ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 313ms |

| 0 / 0 |
