|
DTS. Как определить след. номер
|
|||
---|---|---|---|
#18+
DTS. Я в них ламер Проблема в следующем Есть сервер А и сервер Б Необходимо с сервера А перегнать содержание таблицы tbSrc на сервер Б в таблицу tbDest Но при вставки строки из tbSrc в таблицу tbDest, необходимо определить следующий номер из поля Nr таблицы tbSrc Как ето сделать, пока не понимаю скрипт примерно такой function Main() { DTSDestination("NR") = <b>UNKNOWN</b> ; DTSDestination("FIRMID") = DTSSource("FirmID") ; DTSDestination("PREF") = DTSSource("UnitID") ; DTSDestination("PREFMAIN") = DTSSource("ZoneID") ; Main = DTSTransformstat_InsertQuery ; } Я предполагаю, что вместо <b>UNKNOWN</b>, должен быть вызов чего то, только вот чего ? ) Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2001, 15:31 |
|
DTS. Как определить след. номер
|
|||
---|---|---|---|
#18+
Я могу предложить след.вариант реш-я. Для наглядности будем переносить табл.authors в authors1 с тем, чтобы au_fname и au_lname взялись из записи со след.au_id. Болванка преоб-я делается как обычно. В кач-ве source указываем select * from authors order by au_id. Идем в закладку lookups и создаем след. 2 lookup'a. aaa: SELECT TOP 1 au_fname FROM authors WHERE (au_id > ?) bbb: SELECT TOP 1 au_lname FROM authors WHERE (au_id > ?) В закладке Transformations убиваем тупые переносы au_lname -> au_lname, au_fname -> au_fname и делаем один типа Active Script, у к-го на вход подаются au_id, au_lname, au_fname, а на выходе - au_lname, au_fname. Его код выглядит так: Function Main() DTSDestination("au_fname") = DTSLookups("aaa").Execute(DTSSource("au_id")) DTSDestination("au_lname") = DTSLookups("bbb").Execute(DTSSource("au_id")) if isnull(DTSDestination("au_fname")) or isnull(DTSDestination("au_lname")) then main = (DTSTransformStat_NoMoreRows or DTSTransformStat_SkipRow) else Main = DTSTransformStat_OK end if End Function Проверка select a1.au_id, a.au_fname, a.au_lname, a1.au_fname, a1.au_lname from authors a right outer join authors1 a1 on a.au_id = a1.au_id order by a1.au_id показывает, что все вроде бы работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2001, 19:46 |
|
DTS. Как определить след. номер
|
|||
---|---|---|---|
#18+
Спасибо Но когда я начал читать, понял что допустил ошибку. Я очень извиняюсь но строка "Но при вставки строки из tbSrc в таблицу tbDest, необходимо определить следующий номер из поля Nr таблицы tbSrc" должна выглядеть так "Но при вставки строки из tbSrc в таблицу tbDest, необходимо определить следующий номер из поля Nr таблицы tbDesc" Помоему необходимо сделать Lookup вида aaa: SELECT MAX(NR) FROM tbDesc и потом вставить DTSDestination("NR") = DTSLookups("aaa").Execute() ; Если я не прав, то подскажите пожалуста. Как ето делается ? Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2001, 11:33 |
|
DTS. Как определить след. номер
|
|||
---|---|---|---|
#18+
А не лучше в таком случае сделать поле tbDesc.NR с опцией IDENTITY ? Или "следующий номер из поля Nr таблицы tbDesc" должен вычисляться по какому-то алгоритму ? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2001, 11:46 |
|
|
start [/forum/topic.php?fid=46&msg=32003613&tid=1827117]: |
0ms |
get settings: |
7ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 261ms |
total: | 386ms |
0 / 0 |