Гость
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Проблемы с DataWindow / 25 сообщений из 25, страница 1 из 1
15.07.2009, 10:10
    #36090424
MB_SQL_CM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с DataWindow
Использую среду разработки PowerBuilder 6.5.

В таблице существует два поля - идентификатора со справочной таблицей. Соответственно в при выборе источника данных SQL SELECT происходит два соединения Join c одной и той же таблицей. При этом движок PowerBuilder в окне Syntax правильно рисует два псевдонима справочной таблицы: *_a и *_b, но при выборе отображаемых полей из этих двух псевдонимов делает два столбца с одинаковым именем. Получается вместо двух разных соединений одно двойное.

Я решил сделать через хранимую процедуру(источник - Stored Procedure), но при выборе процедуры возникает ошибка.

Cannot create DataWindow.
'Data-conversion resulted in overflow.
1 execute dbo.proba;1 '

На всякий случай в теле процедуры я оставил только операторы Begin и End, но DataWindow по прежнему не создается из-за этой ошибки.

Скажите, что с этим делать? Может быть есть какой-то способ отключить графический редактор и все ручками набрать?
...
Рейтинг: 0 / 0
15.07.2009, 10:42
    #36090515
BoBaaaaa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с DataWindow
в графическом режиме -> Design -> Convert To Syntax
...
Рейтинг: 0 / 0
15.07.2009, 10:56
    #36090565
MB_SQL_CM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с DataWindow
BoBaaaaaв графическом режиме -> Design -> Convert To Syntax

Спасибо, но к сожалению получается только оператор Select, а DataWindow использует в качестве данных не выбранные Select-ом значения, а свои переменные которые она сама генерирует. Они находятся вверху в списке Selection List.

Еще вопрос, у написанных ранее DataWindow встретился с таким кодом в SQL->Edit Execute
execute dbo.select_d_ist;1 @id = :id
Для чего здесь 1? Во встроенной документации такого синтаксиса не нашел. Без 1 работает точно также.
И может кто-то посоветует ссылку на Руководство по PB. Желательно на русском, но хотя бы и на английском.
...
Рейтинг: 0 / 0
15.07.2009, 12:26
    #36090899
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с DataWindow
1 - первый резалтсет
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
15.07.2009, 12:36
    #36090938
MB_SQL_CM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с DataWindow
spas20011 - первый резалтсет
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца

В смысле результат выполнения первого Selectа в хранимой процедуре?
...
Рейтинг: 0 / 0
15.07.2009, 12:41
    #36090960
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с DataWindow
У вас какая БД?
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
15.07.2009, 12:45
    #36090969
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с DataWindow
Код: 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.
30.
CREATE PROCEDURE
Creates a stored procedure, which is a saved collection of Transact-SQL statements that can take and return user-supplied parameters.

Procedures can be created for permanent use or for temporary use within a session (local temporary procedure) or for temporary use within all sessions (global temporary procedure).

Stored procedures can also be created to run automatically when Microsoft® SQL Server™ starts.

Syntax
CREATE PROC [ EDURE ] procedure_name [ ; number ] 
    [ { @parameter data_type } 
        [ VARYING ] [ = default ] [ OUTPUT ] 
    ] [ ,...n ] 

[ WITH 
    { RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ] 

[ FOR REPLICATION ] 

AS sql_statement [ ...n ] 

Arguments
procedure_name

Is the name of the new stored procedure. Procedure names must conform to the rules for identifiers and must be unique within the database and its owner. For more information, see Using Identifiers. 

Local or global temporary procedures can be created by preceding the procedure_name with a single number sign (#procedure_name) for local temporary procedures and a double number sign (##procedure_name) for global temporary procedures. The complete name, including # or ##, cannot exceed  128  characters. Specifying the procedure owner name is optional.

;number

Is an optional integer used to group procedures of the same name so they can be dropped together with a single DROP PROCEDURE statement. For example, the procedures used with an application called orders may be named orderproc; 1 , orderproc; 2 , and so on. The statement DROP PROCEDURE orderproc drops the entire group. If the name contains delimited identifiers, the number should not be included as part of the identifier; use the appropriate delimiter around procedure_name only.


-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
15.07.2009, 14:06
    #36091196
MB_SQL_CM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с DataWindow
spas2001У вас какая БД?
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца

Э, не понял к чему, но MS SQL SERVER 2005. И почему заголовок от другой темы
...
Рейтинг: 0 / 0
15.07.2009, 14:48
    #36091333
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с DataWindow
Тогда читайте выше
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
15.07.2009, 15:39
    #36091484
andy753
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с DataWindow
Смотрю с набором SQL через синтаксис тут проблема (да и с билдером тоже), что можно посоветовать. Поля с разными названиями просто набирайте как и набирали. А с совпадающими именами предлагаю просто вписать Computed Filed типа field_a = table_a.field или table_a.field as field_a.

Либо как тут советовали тут правильные люди - написать запрос ручками или полуручками и его подправить добавив алиасы полей на полях с одинаковыми названиями.

Все понятно или требуется разжевать?
...
Рейтинг: 0 / 0
15.07.2009, 16:04
    #36091552
MB_SQL_CM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с DataWindow
andy753Смотрю с набором SQL через синтаксис тут проблема (да и с билдером тоже), что можно посоветовать. Поля с разными названиями просто набирайте как и набирали. А с совпадающими именами предлагаю просто вписать Computed Filed типа field_a = table_a.field или table_a.field as field_a.

Либо как тут советовали тут правильные люди - написать запрос ручками или полуручками и его подправить добавив алиасы полей на полях с одинаковыми названиями.

Все понятно или требуется разжевать?

Пока что ничего не понятно. В каком месте Cumputed Filed это прописывать?
К чему описание Create procedure тоже не ясно.
...
Рейтинг: 0 / 0
15.07.2009, 17:10
    #36091741
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с DataWindow
Сами же спрашивали
MB_SQL_CMЕще вопрос, у написанных ранее DataWindow встретился с таким кодом в SQL->Edit Execute
execute dbo.select_d_ist;1 @id = :id
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
16.07.2009, 11:20
    #36092809
MB_SQL_CM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с DataWindow
Неужели никто не знает? Ни одного внятного ответа. Очень странно.
...
Рейтинг: 0 / 0
16.07.2009, 12:15
    #36092985
Локшин Марк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с DataWindow
MB_SQL_CMНеужели никто не знает? Ни одного внятного ответа. Очень странно.
А если посмотреть на это с другой стороны, то уровень задающего вопросы не достаточен, чтобы воспринять ответы ему данные.
...
Рейтинг: 0 / 0
16.07.2009, 13:24
    #36093276
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с DataWindow
To Локшин Марк
+1
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
16.07.2009, 14:14
    #36093485
MB_SQL_CM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с DataWindow
В этой ветке все отвечают почему-то свысока. Сколько было постов, ни одного ответа. Снисходительное "разжевать", "не тот уровень". Можете пытаться уверить кого-то другого в своем великом уме. Никаких особых солжностей в PB нет, среда, где кривая графическая оболочка мешает как может. Здесь всего лишь присутствует баг программы, а вы не знаете что ответить. Если не знаете в чем дело, лучше бы промолчали, чем давать бессмысленные язвительные замечания. Неприятные люди, вам надо что-то делать со своим чувством собственной важности.
...
Рейтинг: 0 / 0
16.07.2009, 14:19
    #36093497
andy753
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с DataWindow
MB_SQL_CM, Попробую ответить подробнее. Но, с 6.5 давно не работал - там GUI немного другое, ищите соответствия в названиях. То что они есть - ручаюсь.

Вначале - забудьте про процедуру, пока.
1. Создайте DW,
2. выберите свои 2 одинаковые таблицы, дважды тапнув по нужной таблице, пусть она называется "table".
3. У Вас появится 2 таблицы с именами "table_a" & "table_b". Остальные связи и таблицы также добавляйте - какие Вам нужно.
4. Зайдите в секцию "Compute" и там наберите в пустом поле что-то типа:
field_a = table_a.field
5. Нажмите Таб, появиться вторая строка, там наберите:
field_b = table_b.field
6. Можно выходить из дизайнера SQL, в дизайнере DW появятся 2 поля: field_a & field_b.

Понятно, что названия полей и таблиц относительны :) Все понятно?
...
Рейтинг: 0 / 0
16.07.2009, 14:39
    #36093579
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с DataWindow
To MB_SQL_CM
Вместо того чтобы наезжать, лучше включите свой мозг
RTFM
Вы спрашивали про непонятную цифру - я вам ответил, даже кусок документации привел
Но если у вас не хватает знаний об элементарном SQL выражении, могли бы помолчать
Если человек ничего не знает про алиасы и самообъединение талиц...
В общем, делайте выводы
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
16.07.2009, 14:55
    #36093641
MB_SQL_CM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с DataWindow
andy753MB_SQL_CM, Попробую ответить подробнее. Но, с 6.5 давно не работал - там GUI немного другое, ищите соответствия в названиях. То что они есть - ручаюсь.

Вначале - забудьте про процедуру, пока.
1. Создайте DW,
2. выберите свои 2 одинаковые таблицы, дважды тапнув по нужной таблице, пусть она называется "table".
3. У Вас появится 2 таблицы с именами "table_a" & "table_b". Остальные связи и таблицы также добавляйте - какие Вам нужно.
4. Зайдите в секцию "Compute" и там наберите в пустом поле что-то типа:
field_a = table_a.field
5. Нажмите Таб, появиться вторая строка, там наберите:
field_b = table_b.field
6. Можно выходить из дизайнера SQL, в дизайнере DW появятся 2 поля: field_a & field_b.

Понятно, что названия полей и таблиц относительны :) Все понятно?

Спасибо, получилось.
Надеюсь найдется адекватный человек, который ответит на второй вопрос.
...
Рейтинг: 0 / 0
16.07.2009, 15:19
    #36093727
MB_SQL_CM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с DataWindow
Проблему с созданием datawindow с источником хранимая процедура удалось решить, поставив галочку Manual Result Set и выбрав переменные вручную.
...
Рейтинг: 0 / 0
16.07.2009, 16:55
    #36094014
andy753
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с DataWindow
MB_SQL_CM,

В принципе, Вы сами себе проблему создали. Если бы в ХП был бы только один резалт-сет (ну селект), то такого бы не прошло и все бы заработало автоматом.

В противном случае, ДВ требуется указать КАКОЙ из резалт-сетов использовать. В общем случае - это гибкость и удобство, но для Вас стала непреодолимая проблема :)
...
Рейтинг: 0 / 0
16.07.2009, 17:03
    #36094042
MB_SQL_CM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с DataWindow
andy753MB_SQL_CM,

В принципе, Вы сами себе проблему создали. Если бы в ХП был бы только один резалт-сет (ну селект), то такого бы не прошло и все бы заработало автоматом.

В противном случае, ДВ требуется указать КАКОЙ из резалт-сетов использовать. В общем случае - это гибкость и удобство, но для Вас стала непреодолимая проблема :)

Он и был один.
...
Рейтинг: 0 / 0
17.07.2009, 08:16
    #36094690
andy753
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с DataWindow
MB_SQL_CM,

Процедуру в студию...
...
Рейтинг: 0 / 0
17.07.2009, 09:44
    #36094805
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с DataWindow
Зачем текст процедуры?
Это же MS SQL, соответственно номер показывает какая именно из группы процедура выполняется и какой резалтсет возвращается, если процедура одна, то хоть ставь единицу, хоть убирай - разницы никакой
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
17.07.2009, 09:45
    #36094807
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с DataWindow
Собственно выше я так и писал
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Проблемы с DataWindow / 25 сообщений из 25, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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