powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / SQL-запрос
10 сообщений из 10, страница 1 из 1
SQL-запрос
    #32482935
_Mikle_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно ли как-нибудь вывести все столбцы кроме первого (или кроме какого-то одного)?
Заранее спасибо.
...
Рейтинг: 0 / 0
SQL-запрос
    #32482949
YuriAM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да. Только тогда тебе придеться генерировать строку SELECT а после его выполнять
...
Рейтинг: 0 / 0
SQL-запрос
    #32482962
_Mikle_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно немного поподробнее ??
...
Рейтинг: 0 / 0
SQL-запрос
    #32482974
YuriAM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Выполнять команду можно не только написав
x=5
?x
но и
v="x=6"
&v
?x
...
Рейтинг: 0 / 0
SQL-запрос
    #32483025
_Mikle_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 YuriAM :
Фокс выводит на печать не с начала строки...
Но на SQLе - то это как будет выглядеть ??
...
Рейтинг: 0 / 0
SQL-запрос
    #32483187
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
LOCAL lnI, lcString
select MyTab
FOR lnI= 1  TO FCOUNT( "MyTab" )
	lcFieldName = Field(m.lnI, "MyTab" )
	IF <поле надо включить в запрос>
		lcString = m.lcString+ "," +m.lcFieldName
	ENDIF
ENDFOR
* Отсекаю первую запятую
lcString=SubStr(m.lcString, 2 )

* Собственно запрос
SELECT &lcString FROM MyTab
...
Рейтинг: 0 / 0
SQL-запрос
    #32483782
_Mikle_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проанализировал Ваш код, все хорошо, только надо сначала обозначить переменную lcString, а то ругается редиска:
lcString=""

тогда получается:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
LOCAL lnI, lcString
select MyTab
lcString= "" && тогда работает :-))
FOR lnI=1  TO FCOUNT("MyTab ")
	lcFieldName = Field(m.lnI," MyTab ")
	IF <поле надо включить в запрос>
		lcString = m.lcString+" ,"+m.lcFieldName
	ENDIF
ENDFOR
* Отсекаю первую запятую
lcString=SubStr(m.lcString, 2 )

* Собственно запрос
SELECT &lcString FROM MyTab


Большое спасибо.
...
Рейтинг: 0 / 0
SQL-запрос
    #32483802
_Mikle_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собственно код применимо к таблице "Марка":

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
close tabl all
sele  0 
use marka
LOCAL lnI, lcString
select Marka
lcString= ""
FOR lnI=1  TO FCOUNT()
	**FCOUNT("Marka ") - Returns the number of fields in a table MARKA
	lcFieldName = Field(m.lnI)
	**FIELD() - Returns the name of a field, referenced by number, in a table.
	IF lcFieldName #" ZEX ".OR.lcFieldName #" PRINS "
		lcString = m.lcString+" ,"+m.lcFieldName
	ENDIF
ENDFOR
* Отсекаю первую запятую
lcString=SubStr(m.lcString, 2 )

* Собственно запрос
SELECT &lcString FROM Marka


Т.е. наоборот, исключаю из запроса поля ZEX и PRINS. Спасибо всем.
...
Рейтинг: 0 / 0
SQL-запрос
    #32484363
_Mikle_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А все-таки как сделать универсальную прогу для выбрасывания, например, первого столбца, без явного его указания в условии ?
...
Рейтинг: 0 / 0
SQL-запрос
    #32484434
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну так по номеру и выбрасывай. Сделай цикл не с 1, а с 2:

FOR lnI= 2 TO FCOUNT()
lcString = m.lcString+","+Field(m.lnI)
ENDFOR
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / SQL-запрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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