powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / прошу помощи - >Запрос -> номер строки
22 сообщений из 22, страница 1 из 1
прошу помощи - >Запрос -> номер строки
    #32831609
Фотография help123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот такая задача:
Необходимо сделать запрос чтобы кроме выбранных данных был еще столбец (например - RowNo), где указан номер записи строки в базовой таблице.
Что-то не получается это сделать.....
...
Рейтинг: 0 / 0
прошу помощи - >Запрос -> номер строки
    #32831617
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
select recno() as RecNum, ... from ...
...
Рейтинг: 0 / 0
прошу помощи - >Запрос -> номер строки
    #32831625
Фотография Hel!Riser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это прокатит тока в случае выборки данных из одной таблицы
...
Рейтинг: 0 / 0
прошу помощи - >Запрос -> номер строки
    #32831632
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но в recno() можно и параметр задать, для какой именно таблицы.
...
Рейтинг: 0 / 0
прошу помощи - >Запрос -> номер строки
    #32831677
Фотография Hel!Riser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
:) можна. Но попробовать получить неправильный результат еще лехче ;)
...
Рейтинг: 0 / 0
прошу помощи - >Запрос -> номер строки
    #32831680
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Hel!Riser

Да, прав, параметр не спасает.
Придется для выборки из нескольких таблиц делать как минимум 2 селекта.
...
Рейтинг: 0 / 0
прошу помощи - >Запрос -> номер строки
    #32831710
Фотография Hel!Riser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
:) не, терь по делу. Нужно пользовать свою UDF
зыпрос примерно выглядять будет так

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT a.cIDa, MyRecnoInA(a.cIDa), b.cIDb, MyRecnoInB(b.cIDb) ;
FROM MyTable1 a INNER JOIN MyTable2 b ON a.cIDa=b.cIDRelationToA

FUNCTION MyRecnoInA (tcID)
=SEEK(tcID,'MyTable1','cIDa')
RETURN RECNO(MyTable1')

FUNCTION MyRecnoInB (tcID)
=SEEK(tcID,'MyTable2','cIDb')
RETURN RECNO(MyTable2')
...
Рейтинг: 0 / 0
прошу помощи - >Запрос -> номер строки
    #32831787
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2riser
а сами пробывали первое впечатление что бред какой-то
seek в запросе и тот же recno()
фишка то в чем воду что ли замутить а
...
Рейтинг: 0 / 0
прошу помощи - >Запрос -> номер строки
    #32831794
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с таким раскладом можно и fopen с fseek использовать если бы файл не блокировался
...
Рейтинг: 0 / 0
прошу помощи - >Запрос -> номер строки
    #32831810
Фотография Hel!Riser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2leaf
Первые фпечатления они обманчивые бывают ;) Так шта попробуй и щастье с номером строки получица по-любому :) тока ессна подправить кавычки
Код: plaintext
RECNO('MyTable1')
...
Рейтинг: 0 / 0
прошу помощи - >Запрос -> номер строки
    #32831826
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 leaf

Да, все это работает.
...
Рейтинг: 0 / 0
прошу помощи - >Запрос -> номер строки
    #32831849
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а с какой скоростью оно работает если вообще работает
ну тогда уж просто отсканировать одну таблицу присоедняя вторую через seek
и сливать все в курсор предварительно созданый и не мутить воду
грибам место в лесу а seek место в цикле но не в запросе хотя может я отстал от жизни
...
Рейтинг: 0 / 0
прошу помощи - >Запрос -> номер строки
    #32831858
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 leaf

Скорость конечно пострадает, ну на больших объемах и т.п.
Почему я и предложил, как вариант, несколько запросов.
...
Рейтинг: 0 / 0
прошу помощи - >Запрос -> номер строки
    #32831869
Фотография Hel!Riser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2leaf
у решения задачи есть как минимум 2 способа. Данный запрос покрывает сабж без сканирования и многопроходности ;Р но флеймить я тоже люблю
...
Рейтинг: 0 / 0
прошу помощи - >Запрос -> номер строки
    #32831893
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ага элементарная прикидка даже если ваша конструкция работоспособна
на одну запись две команды поиска плюс вносимый сумбур в план запроса
неизвестно как запрос отреагирует на подобные скачки
а при новигации 1 запись - 1 поиск
если уж на то пошло то по моему recno без параметров вполне точно выдаст номер записи по главной таблице так что нужна одна функция
если отвлечься от всего остального
...
Рейтинг: 0 / 0
прошу помощи - >Запрос -> номер строки
    #32831915
Фотография Hel!Riser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bla-bla-bla
...
Рейтинг: 0 / 0
прошу помощи - >Запрос -> номер строки
    #32831990
PaulWist_asGuest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть, маленькая тонкость, приведенный Hel!Riser алгоритм поиска возвратит верный результат при отношении один к одному, в противном случае результат будет неверным

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
CREATE CURSOR cParent (ID i, TParent c( 20 ))
CREATE CURSOR cChild (ID i, TChild c( 20 ))

FOR i =  1  TO  2 
	INSERT INTO cParent (id, TParent) VALUES (i, 'cParent ' + TRANSFORM(i))
	FOR j =  1  TO  2 
		INSERT INTO cChild (id, tChild)  VALUES (i, 'cChild ' + TRANSFORM(i))
	ENDFOR 
ENDFOR 

SELECT cParent
INDEX ON id TAG id

SELECT cChild 
INDEX ON id TAG id

SELECT a.ID as ParentID, MyRecnoInA(a.ID) as RecnoParent, b.ID ChildID, MyRecnoInB(b.ID) as RecnoChild ;
FROM cParent a INNER JOIN cChild b ON a.ID = b.ID

FUNCTION MyRecnoInA (tcID)
=SEEK(tcID,'cParent','ID')
RETURN RECNO('cParent')

FUNCTION MyRecnoInB (tcID)
=SEEK(tcID,'cChild','ID')
RETURN RECNO('cChild')

как видим, RecnoChild всегда будет первое найденное по SEEK
...
Рейтинг: 0 / 0
прошу помощи - >Запрос -> номер строки
    #32832000
Фотография Hel!Riser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нееее. если внимательна посмотреть запрос, то в ф-цию от чилдрена я передевал ИД как ПК этого чилдрена ;) связка-то другая ;) В любом случае для связаной таблицы нужен ПК или Сандидат для однозначного сИка :}
...
Рейтинг: 0 / 0
прошу помощи - >Запрос -> номер строки
    #32832032
PaulWist_asGuest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторнееее. если внимательна посмотреть запрос, то в ф-цию от чилдрена я передевал ИД как ПК этого чилдрена

Если он, конечно есть

(c) "Но мы-то ведь знаем, но мы-то ведь знаем, но мы-то ведь знаем, что этот остров не обитаем, т.е. абсолютно" (из песни)
...
Рейтинг: 0 / 0
прошу помощи - >Запрос -> номер строки
    #32832064
PaulWist_asGuest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кстати, Sys(3054)

Result : NONE
...
Рейтинг: 0 / 0
прошу помощи - >Запрос -> номер строки
    #32833581
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Hel!Riser!

Я бы (исключительно на всякий случай, "во избежание ..." так сказать ) в
таких функциях открыл эту таблицу под другим алиасом, и искал уже в ней.
У меня работают кое где UDF-ы бегающий по "запрашиваемым" таблицам (причём
там конечно посложнее код - и не "ту же самую запись" ищём) - скорость
низкая, но вполне приемлемая - в варианте с просто циклом заполняющим
аналогичный курсор - никакого выигрыша нету. Но ещё раз уточню - у меня ищет
не ту же запись, на которой "стоит" SELECT SQL в текущем проходе.

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
прошу помощи - >Запрос -> номер строки
    #32833833
Фотография Hel!Riser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автортаких функциях открыл эту таблицу под другим алиасом, и искал уже в ней.
согласен. как оптимизирущий вариант фполне подходящее решение
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / прошу помощи - >Запрос -> номер строки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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