powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Аналог scan for в ms_sql. Люди хелп срочно !!!
21 сообщений из 21, страница 1 из 1
Аналог scan for в ms_sql. Люди хелп срочно !!!
    #35112679
gotko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mssql2000+vfp8.0
нет времени самому искать запара по работе...
поскажите короткий пример реализации scan for в синтаксисе mssql

надо пробежать по таблице и сделать сумму выбранных по условию строковых переменных
в одну переменную...
в общем нужен аналог такого кода фокса

a=''
select my_table
scan for (условие)
a=a+my_table.pole+chr(10)
endscan
?a
...
Рейтинг: 0 / 0
Аналог scan for в ms_sql. Люди хелп срочно !!!
    #35112699
Galyamov Rinat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: gotko
> mssql2000+vfp8.0

А выдрать все в фокс и там сканом?


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Аналог scan for в ms_sql. Люди хелп срочно !!!
    #35112730
gotko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пока так и делаю но хочется эту функцию в sql -
в фоксе тормозит жутко...
у меня скан по большой таблице и туда суются
выдранные скомпонованные строки по функции...
хочется все повесить на сервер...
...
Рейтинг: 0 / 0
Аналог scan for в ms_sql. Люди хелп срочно !!!
    #35112751
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не надо фоксовые технологии тупо переносить в SQL сервер, разные это системы с разной идеологией.
Сумма по строковому полю там получается примерно таким способом:
Код: plaintext
1.
2.
DECLARE @Result varchar( 8000 )
SELECT @Result = COALESCE(@Result + ',', '') + my_table.pole+char( 10 ) FROM my_table
SELECT @Result 	
...
Рейтинг: 0 / 0
Аналог scan for в ms_sql. Люди хелп срочно !!!
    #35112758
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
USE pubs
GO
WHILE (SELECT AVG(price) FROM titles) < $ 30 
BEGIN
   UPDATE titles
      SET price = price *  2 
   SELECT MAX(price) FROM titles
   IF (SELECT MAX(price) FROM titles) > $ 50 
      BREAK
   ELSE
      CONTINUE
END
PRINT 'Too much for the market to bear'

а может не стоит?
может все-же написать нормальные запросы?

нарисуйте прибл-но
(абстрактно стр-ру таблиц и что хочется сделать)
поможем нарисовать ХП
...
Рейтинг: 0 / 0
Аналог scan for в ms_sql. Люди хелп срочно !!!
    #35112787
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gotkomssql2000+vfp8.0
нет времени самому искать запара по работе...
поскажите короткий пример реализации scan for в синтаксисе mssql

надо пробежать по таблице и сделать сумму выбранных по условию строковых переменных
в одну переменную...
в общем нужен аналог такого кода фокса

a=''
select my_table
scan for (условие)
a=a+my_table.pole+chr(10)
endscan
?a
Зачем SCAN!

Используй курсоры:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
DECLARE @ITOG VARCHAR( 8000 ),
@POLE VARCHAR( 40 )
SET @ITOG = ''
DECLARE MyCur CURSOR FORWARD_ONLY LOCAL STATIC FOR 
SELECT pole FROM my_table WHERE Условие
OPEN MyCur
FETCH NEXT FROM MyCur INTO @POLE
WHILE @@FETCH_STATUS =  0 
BEGIN
     SET @ITOG = @ITOG + @POLE + CHAR( 10 )
     FETCH NEXT FROM MyCur INTO @POLE
END
CLOSE MyCur
DEALLOCATE MyCur
С уважением, Алексей
P.S. На SQL 2005 я такие агрегаты делаю через CLR на C#
Тогда можно всю строку собрать одним SELECT
...
Рейтинг: 0 / 0
Аналог scan for в ms_sql. Люди хелп срочно !!!
    #35112805
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя вариант Sergey Sizov мне нравится больше, чем мой с курсорами, но я бы добавил бы одну команду на случай поля CHAR, а не VARCHAR:
Код: plaintext
1.
2.
DECLARE @Result varchar( 8000 )
SELECT @Result = COALESCE(@Result + ',', '') + RTRIM(pole) + char( 10 ) FROM my_table
SELECT @Result 
С уважением, Алексей
...
Рейтинг: 0 / 0
Аналог scan for в ms_sql. Люди хелп срочно !!!
    #35112813
gotko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
на сервере
t_set (c_set int, name char(50)) - старшая таблица
b_set (c_set int ,razmer char(2),kol int) -подчиненная таблица по c_set

надо udf(t_set.c_set) которая вернет строку
b_set.razmer+' - '+str(b_set.kol)+chr(10)+... и так по всем строкам в b_set,
отвечающим конкретной c_set

это надо, чтобы потом засунуть эту строку в примечание к ячейке в excel - ном отчете

примечание должно иметь вид
razmer - kol
42 - 2
43 - 2
44 - 1
и т.д. по всем b_set.c_set
на форматирование пока можно забить...
...
Рейтинг: 0 / 0
Аналог scan for в ms_sql. Люди хелп срочно !!!
    #35112848
gotko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
to Sergey Sizov.

DECLARE @Result varchar(8000)
SELECT @Result = COALESCE(@Result + ',', '') + my_table.pole+char(10) FROM my_table
SELECT @Result
может я чего не понял, но где здесь условие?
или сначала надо дернуть нужное во временную таблицу а уже по ней применять этот код ?
...
Рейтинг: 0 / 0
Аналог scan for в ms_sql. Люди хелп срочно !!!
    #35112854
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 gotko
Основу Вам дали, остальное Ваша работа.
...
Рейтинг: 0 / 0
Аналог scan for в ms_sql. Люди хелп срочно !!!
    #35112864
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SELECT @Result = COALESCE(@Result + ',', '') + my_table.pole+char(10) FROM my_table
может я чего не понял, но где здесь условие?
Батенька, а может еще программу за Вас написать? Или настолько плохо знаете синтаксис команды Select и не знаете где и как в ней указывается условие отбора?
Хорошо, напомню:
Код: plaintext
SELECT @Result = COALESCE(@Result + ',', '') + my_table.pole+char( 10 ) FROM my_table where (условие)
...
Рейтинг: 0 / 0
Аналог scan for в ms_sql. Люди хелп срочно !!!
    #35112865
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gotkoto Sergey Sizov.

DECLARE @Result varchar(8000)
SELECT @Result = COALESCE(@Result + ',', '') + my_table.pole+char(10) FROM my_table
SELECT @Result
может я чего не понял, но где здесь условие?
или сначала надо дернуть нужное во временную таблицу а уже по ней применять этот код ?
FROM my_table WHERE ... ТУТ ВАШЕ УСЛОВИЕ !
Вы же его не привели в своем пример.
А в принципе, Сергей прав. Вам дали два варианта решения. Немного стоит, наверное и самому BOL посмотреть!
С уважением, Алексей
...
Рейтинг: 0 / 0
Аналог scan for в ms_sql. Люди хелп срочно !!!
    #35112872
gotko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
всем спасибо !
дальше буду сам...
...
Рейтинг: 0 / 0
Аналог scan for в ms_sql. Люди хелп срочно !!!
    #35112977
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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.
26.
27.
28.
29.
create table #t_set (c_set int, name char( 50 )) -- старшая таблица
create table #b_set (c_set int ,razmer char( 2 ),kol int) --подчиненная таблица по c_set

insert into #t_set 
	select  1 , 'сапоги'
	union
	select  2 , 'брюки'
insert into #b_set 
	select  1 , '1',  3 
	union
	select  1 , '2',  5 
	union
	select  2 , '33',  4 
	union
	select  2 , '66',  8 


declare @cStr varchar( 500 )
set @cStr=''
select @cStr=@cStr + b.razmer + '-' + ltrim(str(b.kol)) + ' ' + char( 10 )
			from #b_set b
			where b.c_set =  1 
print @cStr

set @cStr=''
select @cStr=@cStr + b.razmer + '-' + ltrim(str(b.kol)) + ' ' + char( 10 )
			from #b_set b
			where b.c_set =  2 
print @cStr
...
Рейтинг: 0 / 0
Аналог scan for в ms_sql. Люди хелп срочно !!!
    #35113384
Aleksey-K gotkomssql2000+vfp8.0
нет времени самому искать запара по работе...
поскажите короткий пример реализации scan for в синтаксисе mssql

надо пробежать по таблице и сделать сумму выбранных по условию строковых переменных
в одну переменную...
в общем нужен аналог такого кода фокса

a=''
select my_table
scan for (условие)
a=a+my_table.pole+chr(10)
endscan
?a
Зачем SCAN!

Используй курсоры:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
DECLARE @ITOG VARCHAR( 8000 ),
@POLE VARCHAR( 40 )
SET @ITOG = ''
DECLARE MyCur CURSOR FORWARD_ONLY LOCAL STATIC FOR 
SELECT pole FROM my_table WHERE Условие
OPEN MyCur
FETCH NEXT FROM MyCur INTO @POLE
WHILE @@FETCH_STATUS =  0 
BEGIN
     SET @ITOG = @ITOG + @POLE + CHAR( 10 )
     FETCH NEXT FROM MyCur INTO @POLE
END
CLOSE MyCur
DEALLOCATE MyCur
С уважением, Алексей
P.S. На SQL 2005 я такие агрегаты делаю через CLR на C#
Тогда можно всю строку собрать одним SELECT

Это легко решается без CLR курсоров и прочих извращений
Код: plaintext
SELECT [field]+',' as "data()"   FROM [dbo].[table] for xml path('')  
легко читать легко поддерживать
...
Рейтинг: 0 / 0
Аналог scan for в ms_sql. Люди хелп срочно !!!
    #35113505
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бывший фоксист Aleksey-K gotkomssql2000+vfp8.0
нет времени самому искать запара по работе...
поскажите короткий пример реализации scan for в синтаксисе mssql

надо пробежать по таблице и сделать сумму выбранных по условию строковых переменных
в одну переменную...
в общем нужен аналог такого кода фокса

a=''
select my_table
scan for (условие)
a=a+my_table.pole+chr(10)
endscan
?a
Зачем SCAN!

Используй курсоры:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
DECLARE @ITOG VARCHAR( 8000 ),
@POLE VARCHAR( 40 )
SET @ITOG = ''
DECLARE MyCur CURSOR FORWARD_ONLY LOCAL STATIC FOR 
SELECT pole FROM my_table WHERE Условие
OPEN MyCur
FETCH NEXT FROM MyCur INTO @POLE
WHILE @@FETCH_STATUS =  0 
BEGIN
     SET @ITOG = @ITOG + @POLE + CHAR( 10 )
     FETCH NEXT FROM MyCur INTO @POLE
END
CLOSE MyCur
DEALLOCATE MyCur
С уважением, Алексей
P.S. На SQL 2005 я такие агрегаты делаю через CLR на C#
Тогда можно всю строку собрать одним SELECT

Это легко решается без CLR курсоров и прочих извращений
Код: plaintext
SELECT [field]+',' as "data()"   FROM [dbo].[table] for xml path('')  
легко читать легко поддерживать
1. Так у человека mssql2000! Какой path ?
2. CLR агрегаты я использую, конечно, не для таких сборок строки, а для дополнительное (иногда достаточно сложной) обработки во время агрегирования. А простая конкатенация с произвольным разделитеоем получается, как частный слачай. Для SQL 2000 это тоже не пойдет.
Остается вариант Sergey Sizov для простой конкатенации или курсоры для более сложной обработки.
С уважением, Алексей
...
Рейтинг: 0 / 0
Аналог scan for в ms_sql. Люди хелп срочно !!!
    #35113725
Aleksey-K
1. Так у человека mssql2000! Какой path ?
2. CLR агрегаты я использую, конечно, не для таких сборок строки, а для дополнительное (иногда достаточно сложной) обработки во время агрегирования. А простая конкатенация с произвольным разделитеоем получается, как частный слачай. Для SQL 2000 это тоже не пойдет.
Остается вариант Sergey Sizov для простой конкатенации или курсоры для более сложной обработки.
С уважением, Алексей

Просто неудачно процитировал ваше сообщение.
Речь конечно шла о 2005.
...
Рейтинг: 0 / 0
Аналог scan for в ms_sql. Люди хелп срочно !!!
    #35113755
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бывший фоксист Aleksey-K
1. Так у человека mssql2000! Какой path ?
2. CLR агрегаты я использую, конечно, не для таких сборок строки, а для дополнительное (иногда достаточно сложной) обработки во время агрегирования. А простая конкатенация с произвольным разделитеоем получается, как частный слачай. Для SQL 2000 это тоже не пойдет.
Остается вариант Sergey Sizov для простой конкатенации или курсоры для более сложной обработки.
С уважением, Алексей

Просто неудачно процитировал ваше сообщение.
Речь конечно шла о 2005.
А Вас, уважаемый "бывший фоксист" часом не Андрей Александрович зовут ?
С уважением, Алексей
...
Рейтинг: 0 / 0
Аналог scan for в ms_sql. Люди хелп срочно !!!
    #35114587
Aleksey-K
А Вас, уважаемый "бывший фоксист" часом не Андрей Александрович зовут ?
С уважением, Алексей

А в связи с чем такой интимный вопрос?
...
Рейтинг: 0 / 0
Аналог scan for в ms_sql. Люди хелп срочно !!!
    #35115553
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бывший фоксист Aleksey-K
А Вас, уважаемый "бывший фоксист" часом не Андрей Александрович зовут ?
С уважением, Алексей

А в связи с чем такой интимный вопрос?
Думал знакомы. Извините, обознался.
С уважением, Алексей
...
Рейтинг: 0 / 0
Аналог scan for в ms_sql. Люди хелп срочно !!!
    #35115643
Aleksey-K
Думал знакомы. Извините, обознался.
С уважением, Алексей

Знакомы, но тем не менее вы меня с кем то спутали, судя по отчеству.
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Аналог scan for в ms_sql. Люди хелп срочно !!!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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