powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / подскажите плизз..
11 сообщений из 11, страница 1 из 1
подскажите плизз..
    #33398805
guest1232
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1. Вставляю в дбф из запроса select .... from .... into table ....
некоторые поля в Дбф'ке должны быть BLANK
есть ли возможность как то это контролировать из запроса ??
Если нет то как лучше поступить ?
2. Мне необходимо назвать поле в запросе зарезервированным словом причем в контексте запроса: select Field1 group from MyTable.... (group - это то название поле которое мне необходимо)
Фокс ругается как заставить его схвать это название ?

Заранее Спасибо !!! :)
...
Рейтинг: 0 / 0
подскажите плизз..
    #33398850
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi guest1232!

1) SELECT не "вставляет в DBF", а полностью пересоздаёт эту таблицу.
"вставляет" как раз INSERT INTO ... (поля) SELECT далее_запрос - при этом
конечно можно пропустить часть полей и они останутся пустыми, или если
прописан Default на поле, то он их заполнит чем надо. Естественно что для
работы такой конструкции надо иметь свежий фокс - в 6-ке работать не будет
:) Неужели сразу трудно указать на чём работаешь???
2) SELECT SPACE(20) AS новое_пустое_поле.
3) select field1 AS group from MyTable
При этом потом работа с таким курсором может быть ограничена. скажем если
поле названо FROM, то вообще запроса из такого курсора больше не сделать...
Group себя проявит в другом месте конечно...

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
подскажите плизз..
    #33399840
guest1232
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hi Igor Korolyov
авторSELECT не "вставляет в DBF", а полностью пересоздаёт эту таблицу
мне это известно, просто я выразился возможно не совсем удачно.
Однако мне действительно необходимо использовать select ... from ... into table
при этом оставив некоторые поля blank (не space(20) или null а именно blank).
Я так понял используя такую конструкцию это нельзя добится ?

Я пока вставлял null, хотя это не то что мне надо, но фокс в конце таблички вставляет поле _nullflags, я знаю что это за поле но не знаю как от него избавится, может подскажите ?

ЗЫ. VFP 9
ЗЫЫ. Результирующая табличка должна быть dBASE IV но как явно это задать в конструкции select ... from ... into table либо каким то другим способом я не нашел, и потому просто указываю типы полей dBASE <=IV.

Спасибо.
...
Рейтинг: 0 / 0
подскажите плизз..
    #33399896
GoshaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для 9-ки
попробуй результат запроса в курсор направить а из курсора:
Код: plaintext
1.
2.
SELECT my_table
COPY TO "resalt/newtable"  as  866  TYPE FOX2X
...
Рейтинг: 0 / 0
подскажите плизз..
    #33400048
guest1232
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
SELECT my_table
COPY TO "resalt/newtable"  as  866  TYPE FOX2X
у меня имя файла ("resalt/newtable") - находится в переменной filename.
я ее подставляю
Код: plaintext
COPY TO &filename type fox2x
и так
Код: plaintext
COPY TO filename type fox2x
записи копируются в &filename и filename соответственно
...
Рейтинг: 0 / 0
подскажите плизз..
    #33400052
Maltsev Max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Напиши так:
Код: plaintext
COPY TO (filename) type fox2x
...
Рейтинг: 0 / 0
подскажите плизз..
    #33400055
_hike_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или надо параметр NAME использовать ?
...
Рейтинг: 0 / 0
подскажите плизз..
    #33400069
_hike_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
COPY TO (&filename) type fox2x
пишет в файл (&filename).dbf
Код: plaintext
COPY TO (filename) type fox2x
пишет переменная filename не найдена.
...
Рейтинг: 0 / 0
подскажите плизз..
    #33400080
_hike_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
упс ... переменную не так назвал, прошу прощения все Ок.
...
Рейтинг: 0 / 0
подскажите плизз..
    #33401109
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest1232я выразился возможно не совсем удачно.
Однако мне действительно необходимо использовать select ... from ... into table
при этом оставив некоторые поля blank (не space(20) или null а именно blank).
Я так понял используя такую конструкцию это нельзя добится ?
BLANK - это и есть SPACE(20).

BLANK - это НЕ ЗНАЧЕНИЕ в том смысле, как используется NULL. BLANK - это способ физического хранения ПУСТОГО (нулевого) значения.

При этом FoxPro однозначно интерпретирует поля со "значением" BLANK как пустые. Для числовых - это 0, для символьных - набор пробелов.

Поэтому, для символьных данных вместо BLANK вполне можно использовать SPACE(20), а вот для числовых данных придется после команды создания поля дать еще дополнительную команду вроде

Код: plaintext
1.
2.
select MyTable
BLANK FIELDS MyField FOR MyField =  0 

Хотя, повторюсь, с точки зрения значения такого поля ничего не измениться. FoxPro как считал, что там нулевое значение, так по прежнему и будет считать.

Да, для VFP9 такие пустые числовые поля можно формировать через функцию CAST()

Код: plaintext
SELECT CAST( 0  AS N( 10 )) as EmptyField FROM MyTab

Ну, а как конвертировать в Fox2x ты уже и так знаешь.
...
Рейтинг: 0 / 0
подскажите плизз..
    #33401341
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi guest1232!

> Я пока вставлял null, хотя это не то что мне надо, но фокс в конце
> таблички вставляет поле _nullflags, я знаю что это за поле но не знаю как
> от него избавится, может подскажите ?

Нет, ты не знаешь что это за поле :) Если бы знал - то знал бы что его не
возникает если в таблице нету полей разрешающих NULL-значения (а также VAR*
полей для VFP9).

в VFP9 наверное проще сначала создать таблицу нужного вида, а потом
заполнить её через INSERT INTO MyTable (поля) SELECT далее твой запрос - о
чём я уже писал. При этом САМА таблица не меняется - т.е. не пересоздаётся,
а значит будет иметь ту структуру что ты до того и создал.

DBF формата dBase IV создать в фоксе нельзя, впрочем если это простая
таблица без memo полей и полей новых типов (извини, не работал с dBase, но
вроде там начиная с 4-й версии есть какие-то свои типы полей), то формат
совпадает с dBase III который по сути и есть TYPE FOX2X. Думаю что и таблицу
с memo полями формата FOX2X dBase сможет открыть и конвертировать в свой
формат.

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / подскажите плизз..
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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