powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / dbf() возвращает "левое" значение
25 сообщений из 40, страница 1 из 2
dbf() возвращает "левое" значение
    #34060679
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
привет всем!
сделал такую виборку
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
   SELECT ;
       abonents.ab_name,;
       abonents.abonent,;
       abonent2 ,;
       kdf.talk_sec,;
       pull.comment;
     FROM DBF("kdf") ;
     LEFT JOIN pull ON abonent2 = pull.phone;
     LEFT JOIN abonents ON VAL(kdf.abonent) = abonents.abonent;
     WHERE abonent2 in (select phone from pull) ;
     INTO CURSOR curUsedPull
после выполнения запроса заглядываю в него - в нем все как просил, даю
?DBF("curUsedPull")
возвращает имя файла с полным путем, как положено, тока там, по указанному пути, нету этого файла :( Даже ТС давал искать указанный в ответе DBF() файл - нету такого на винте!
соотв. не могу сделать выборку из полученного курсора curUsedPull.

Че за прикол - мож кто знает?

вфп80

ЗЫ
например оно дало мне
C:\DOCUME~1\СТАС\LOCALS~1\TEMP\BEIW000K.TMP
но там лежат тока таких вот 3 файла с похожим именем:
beiw0007.tmp
beiw0009.tmp
beiw000d.tmp
...
Рейтинг: 0 / 0
dbf() возвращает "левое" значение
    #34060790
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CTAC-KOсоотв. не могу сделать выборку из полученного курсора curUsedPull.

А ты пробовал?
select * from curUsedPull и всё получится.
...
Рейтинг: 0 / 0
dbf() возвращает "левое" значение
    #34060796
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробовал добавлять в выборку опции NOFILTER или READWRITE - ниче не дает :(
...
Рейтинг: 0 / 0
dbf() возвращает "левое" значение
    #34060801
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я так понимаю фокс зарезервировал имя файла C:\DOCUME~1\СТАС\LOCALS~1\TEMP\BEIW000K.TMP на случай если твой курсор куда-то свопить надо будет.

вместо DBF() в данном случае надо использовать ALIAS()
...
Рейтинг: 0 / 0
dbf() возвращает "левое" значение
    #34060806
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если тебе в файл это все надо, то select ... INTO DBF curUsedPull
...
Рейтинг: 0 / 0
dbf() возвращает "левое" значение
    #34060809
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нет, так не пробовал, по памяти знаю что так не проходит - надо именно реальное имя давать...

ну попробовал - получил ошибку
Clause is missing or invalid

(т.е. я все нормально помню)
...
Рейтинг: 0 / 0
dbf() возвращает "левое" значение
    #34060822
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это я о
AleksMed CTAC-KOсоотв. не могу сделать выборку из полученного курсора curUsedPull.

А ты пробовал?
select * from curUsedPull и всё получится.
...
Рейтинг: 0 / 0
dbf() возвращает "левое" значение
    #34060865
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TЯ так понимаю фокс зарезервировал имя файла C:\DOCUME~1\СТАС\LOCALS~1\TEMP\BEIW000K.TMP на случай если твой курсор куда-то свопить надо будет.
вместо DBF() в данном случае надо использовать ALIAS()Вы это к чему? Зачем мне альяс из альяса? мне нуда реальное имя физического файла полученного курсора

Dima TА если тебе в файл это все надо, то select ... INTO DBF curUsedPullтакое наверняка пройдет - но это мне неинтересно, т.е. это альтернативный вариант, а я уже свой состряпал, но на вопрос-то мой это не отвечает.

Раньше такая тема, с dbf(), у меня проходила, почему-то сейчас - нет...
...
Рейтинг: 0 / 0
dbf() возвращает "левое" значение
    #34060872
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
это что за шаманство?

вначале ты его в курсор
а затем ....

уж определись чего тебе нужно
...
Рейтинг: 0 / 0
dbf() возвращает "левое" значение
    #34060889
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мне нужно эта...
я хотел потом...
...из полученного курсора сделать еще одну выборку...
...
Рейтинг: 0 / 0
dbf() возвращает "левое" значение
    #34060894
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
что с курсорами не судьюа работать???

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
create cursor tt (t i, p i)

insert into tt (t,p) values ( 1 , 1 )
insert into tt (t,p) values ( 2 , 2 )

select * from tt into cursor tt1 where t= 1 
select * from tt into cursor tt2 where t= 2 

select * ;
    from tt1 ;
union ;
select * ;
    from tt2 ;
into cursor tt3
...
Рейтинг: 0 / 0
dbf() возвращает "левое" значение
    #34060896
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Стасик, дорогой, не морочь себе и людям голову
...
Рейтинг: 0 / 0
dbf() возвращает "левое" значение
    #34060920
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CTAC-KO Dima TЯ так понимаю фокс зарезервировал имя файла C:\DOCUME~1\СТАС\LOCALS~1\TEMP\BEIW000K.TMP на случай если твой курсор куда-то свопить надо будет.
вместо DBF() в данном случае надо использовать ALIAS()Вы это к чему? Зачем мне альяс из альяса? мне нуда реальное имя физического файла полученного курсора

Dima TА если тебе в файл это все надо, то select ... INTO DBF curUsedPullтакое наверняка пройдет - но это мне неинтересно, т.е. это альтернативный вариант, а я уже свой состряпал, но на вопрос-то мой это не отвечает.

Раньше такая тема, с dbf(), у меня проходила, почему-то сейчас - нет...

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

Так писать не надо:
SELECT ... FROM DBF("kdf") ...

пишешь
SELECT ... FROM kdf ...
если таблица уже открыта, то фокс из нее точно выборку сделает

Если ты писал
select * from DBF("curUsedPull")
то так точно не сработает
...
Рейтинг: 0 / 0
dbf() возвращает "левое" значение
    #34060922
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ишшо издеваецца...
при чем тут работа с курсорами-то? у меня в базах нужные данные - мне что, предварительно их в курсоры копировать, шобы из тех курсоров потом выборку делать? и как это повлияет на результат фукции dbf()?
...
Рейтинг: 0 / 0
dbf() возвращает "левое" значение
    #34060946
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
какие базы, какие курсоры???

что тебе сделать нужно???

ты что писал??
читай
авторсоотв. не могу сделать выборку из полученного курсора curUsedPull.

напиши по-русски что нужно сделать

- выбрать в курсор
- что с выборкой сделать (запихнуть в БД?)
...
Рейтинг: 0 / 0
dbf() возвращает "левое" значение
    #34060947
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T
Если ты писал
select * from DBF("curUsedPull")
то так точно не сработает
в том-то и дело что у меня в ряде других подобных случаев тема select * from DBF("curUsedPull") прекрасно проходит.
то что не нада делать
SELECT ... FROM DBF("kdf") ...
я и сам прекрасно знаю. и то что в FROM нужно не алиас давать, а рельное имя файла - тоже. и собсенно в этом и проблема тк DBF("curUsedPull") не отдает мне имя файла. Ведь curUsedPull это не файл, это алиас.
...
Рейтинг: 0 / 0
dbf() возвращает "левое" значение
    #34060953
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
WHERE abonent2 in (select phone from pull) 

во это пишется в иннер джоин
...
Рейтинг: 0 / 0
dbf() возвращает "левое" значение
    #34060965
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex11100
- выбрать в курсор
- что с выборкой сделать?

из полученно выборки сделать другую выборку, с условиями другими
...
Рейтинг: 0 / 0
dbf() возвращает "левое" значение
    #34060974
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторв FROM нужно не алиас давать, а рельное имя файла - тоже

кто тебе эту чушь сказал
...
Рейтинг: 0 / 0
dbf() возвращает "левое" значение
    #34060979
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот это видишь
это все курсоры

работает???

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
create cursor tt (t i, p i)

insert into tt (t,p) values ( 1 , 1 )
insert into tt (t,p) values ( 2 , 2 )

select * from tt into cursor tt1 where t= 1 
select * from tt into cursor tt2 where t= 2 

select * ;
    from tt1 ;
union ;
select * ;
    from tt2 ;
into cursor tt3
...
Рейтинг: 0 / 0
dbf() возвращает "левое" значение
    #34060982
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex11100
Код: plaintext
WHERE abonent2 in (select phone from pull) 

во это пишется в иннер джоиннеа. не пишецца. ибо я получу не то, что мне нада
Иначе напиши мне полностью мою выборку с иннером вместо ин - я проверю
...
Рейтинг: 0 / 0
dbf() возвращает "левое" значение
    #34060995
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Стас, ты чудишь
и не по-мелкому
...
Рейтинг: 0 / 0
dbf() возвращает "левое" значение
    #34061009
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex11100вот это видишь
это все курсоры

работает???

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
create cursor tt (t i, p i)

insert into tt (t,p) values ( 1 , 1 )
insert into tt (t,p) values ( 2 , 2 )

select * from tt into cursor tt1 where t= 1 
select * from tt into cursor tt2 where t= 2 

select * ;
    from tt1 ;
union ;
select * ;
    from tt2 ;
into cursor tt3
это - работает, а с курсором-результатом-выборки = фигушки. Я уже однажды на это напоролся и точно знаю.
...
Рейтинг: 0 / 0
dbf() возвращает "левое" значение
    #34061015
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CTAC-KO Dima T
Если ты писал
select * from DBF("curUsedPull")
то так точно не сработает
в том-то и дело что у меня в ряде других подобных случаев тема select * from DBF("curUsedPull") прекрасно проходит.
то что не нада делать
SELECT ... FROM DBF("kdf") ...
я и сам прекрасно знаю. и то что в FROM нужно не алиас давать, а рельное имя файла - тоже. и собсенно в этом и проблема тк DBF("curUsedPull") не отдает мне имя файла. Ведь curUsedPull это не файл, это алиас.

Ты сам запутался и всех запутал. Почему таблица обязательно в файле должна быть, курсоры в памяти хранятся чтобы диск не засорять. Ты же значения переменных на диске не ищешь?

Функция DBF() возвращает полное имя файла открытой DBF, используется для операций с файлами (например скопировать куда-то или запаковать)
Но в select`е так писать не надо, если таблица открыта, то он и без DBF("MyDBF") поймет, а если закрыта, то ошибку получишь, а так select ее сам откроет.
...
Рейтинг: 0 / 0
dbf() возвращает "левое" значение
    #34061033
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пиши с указанием псевдонимов
ничего не понимаю, где и какие поля

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT ;
       a.ab_name,;
       a.abonent,;
       k.abonent2 ,;
       k.talk_sec,;
       p.comment;
     FROM kdf k ;
     inner JOIN pull p ON k.abonent2 = p.phone;
     LEFT JOIN abonents a ON VAL(k.abonent) = a.abonent;
     INTO CURSOR curUsedPull
...
Рейтинг: 0 / 0
25 сообщений из 40, страница 1 из 2
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / dbf() возвращает "левое" значение
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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