|
|
|
Вот такой вопрос ... (datawindow vs stored procedure)
|
|||
|---|---|---|---|
|
#18+
Добрый день. PB9.0.2 / mssql 2K 1. написал просиджер (select a, b, c from abcdef). 2. на его базе сделал datawindow dw_test. 3. сохранили синакс в DB. Открываем окно, зовём синтакс из DB. делаем dw_1.Create(s_dwsyntax_str, s_errors) делаем dw_1.SetTransObject (i_tr_sql) делаем dw_1.Retrieve() Всё в порядке. Kто-то меняет просиджер на (select a, d, b, f, c, a from abcdef). я етого не знаю, делаю очередной dw_1.Retrieve(), и ессесвенно имею: /* sql code 0 Select Error: column list do not match. */ Вопрос: как бы перед тем как делать Retrieve(), проверить сохранённый синтакс (количество, название, последовательность колонок) против вызываемого просиджер, и если они не соответствуют, STOP, а ещё лучше, подправить синтакс. Заранее благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2005, 21:38 |
|
||
|
Вот такой вопрос ... (datawindow vs stored procedure)
|
|||
|---|---|---|---|
|
#18+
Создавать datawindow динамически, через SyntaxFromSQL... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2005, 23:17 |
|
||
|
Вот такой вопрос ... (datawindow vs stored procedure)
|
|||
|---|---|---|---|
|
#18+
Сенькс, вчера дошурупил, начальство сказало, перекраивать datawindow под просиджер не надо, только остановить, что бы усера не видели угрожаюших месаджей. Сделал так, может кому пригодитса. dw_1 = datawindow, То чего они увидят. l_ds = datastore, То с чем я буду его сравнивать. Если у кого есть поправки... please. dw_1.SetRedraw(FALSE) dw_1.Create(s_dwsyntax_str, s_errors) IF Len(s_errors) > 0 THEN dw_1.SetRedraw(TRUE) MessageBox(This.Title, 'SQLCreate Failed. Errors: ' + s_errors) RETURN END IF l_ds = create datastore s_procedure = dw_1.Object.DataWindow.Table.procedure l_pos = Pos(s_procedure, '=') s_dwsyntax_str = Left(s_procedure, l_pos + 1) + '0' s_dwsyntax_str = SQLCA.SyntaxFromSQL(s_dwsyntax_str, & 'style(type=grid)', s_errors) IF Len(s_errors) > 0 THEN dw_1.SetRedraw(TRUE) MessageBox('Caution', 'SyntaxFromSQL caused these errors: ' + s_errors) RETURN END IF l_ds.Create(s_dwsyntax_str, s_errors) IF Len(s_errors) > 0 THEN dw_1.SetRedraw(TRUE) Destroy(l_ds) MessageBox('Caution', 'Create cause these errors: ' + s_errors) RETURN END IF s_columns = dw_1.Object.DataWindow.Table.columns s_ds_columns = l_ds.Object.DataWindow.Table.columns destroy l_ds IF s_columns <> s_ds_columns THEN dw_1.DataObject = '' dw_1.SetRedraw(TRUE) MessageBox(This.title, 'Procedure has been changed, ' + & report can not be loaded.', Exclamation!) RETURN END IF dw_1.SetRedraw(TRUE) ................................ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2005, 19:05 |
|
||
|
|

start [/forum/topic.php?fid=15&msg=33190488&tid=1338224]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
48ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 204ms |
| total: | 326ms |

| 0 / 0 |
