|
|
|
Операторы языка...
|
|||
|---|---|---|---|
|
#18+
Я так понял, что в MSSQL можно использовать некоторые типичные операторы, имеющиеся в других языках программирования, например мне нужно организовать цикл. На VB это было бы так: D1, D2, D - даты rs1, rs2 - рекордсеты, точнее таблицы D1 = "01.01.2003" D2 = "31.12.2003" rs1.MoveFirst While Not rs1.EOF D = rs1.[Date_repair] While D <= D2 If D >= D1 Then rs2.AddNew rs2.ID_Eq = rs1.[ID] rs2.[Дата] = D rs2.[Тип] = "С" rs2.Update End If D = DateAdd("d", rs1.[Средний] / 8 / rs1.[Cмены], D) Wend можно ли организовать подобный цикл в MSSQL, если использовать rs1 как SELECT * FROM Оборудование, а rs2 как SELECT * FROM Ремонты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2002, 15:39:29 |
|
||
|
Операторы языка...
|
|||
|---|---|---|---|
|
#18+
В лоб - через курсоры ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2002, 15:43:30 |
|
||
|
Операторы языка...
|
|||
|---|---|---|---|
|
#18+
При решении какой-то задачи Вашим первым вопросом должен быть: "А как это сделать одним запросом?" Судя по листингу Ваша задача решается так. insert into rs2 (rs2.ID_Eq,rs2.[Дата],rs2.[Тип]) select rs1.[ID],rs1.[Date_repair],"С" from rs1 where D between @D1 and @D2 И выкиньте из головы прежние подходы к обработке таблиц последовательным доступом к строкам ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2002, 00:20:01 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32054489&tid=1819928]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 196ms |
| total: | 320ms |

| 0 / 0 |
