Список объектов БД для Oracle Connection
Список объектов БД для Oracle Connection
Здравствуйте.
Редактор работает нормально.
Осталось решить вопросы со спиком объектов, Edit Data Source и QueryBuilder ...
Редактор работает нормально.
Осталось решить вопросы со спиком объектов, Edit Data Source и QueryBuilder ...
-
- Сообщения: 264
- Зарегистрирован: 12 ноя 2007, 08:16
Список объектов БД для Oracle Connection
Здравствуйте,
>>1. Edit Data Source – при наличии изменений по кнопке «Cancel» не выдается запрос подтверждения закрытия окна (по нажатию на крестик спрашивает)
Все работает правильно. Запрос выдается для случаев, если пользователь нажал Escape или Alt+F4. А на «Cancel» его просто не должно быть!
>>2. QueryBuilder – возникает необработанная ошибка при наличии в запросе полей типа BLOB, CLOB (возможно и прочих бинарных, типа LONG и пр.):
The following exception occurred in the DataGridView: System.ArgumentException: Parameter is not valid.
К сожалению, пока остается так как есть, мы не можем ничего изменить.
Спасибо.
>>1. Edit Data Source – при наличии изменений по кнопке «Cancel» не выдается запрос подтверждения закрытия окна (по нажатию на крестик спрашивает)
Все работает правильно. Запрос выдается для случаев, если пользователь нажал Escape или Alt+F4. А на «Cancel» его просто не должно быть!
>>2. QueryBuilder – возникает необработанная ошибка при наличии в запросе полей типа BLOB, CLOB (возможно и прочих бинарных, типа LONG и пр.):
The following exception occurred in the DataGridView: System.ArgumentException: Parameter is not valid.
К сожалению, пока остается так как есть, мы не можем ничего изменить.
Спасибо.
Список объектов БД для Oracle Connection
Здравствуйте!
Если данные не были сохранены, то какая разница, каким именно способом пользователь закрывает окно?
Это ведь защита от ошибки, а юзер в любом случае может ошибиться.
Например, юзер привык к линуксовому расположению кнопок ("ОК" справа) и случайно нажал "Cancel".
Кроме того, в том же "Query Builder" поведение другое, запрос выдается даже на нажатие кнопки "Close".
В целом это не проблема, но я такое поведение считаю нелогичным.
Хорошо, хоть в просмотре данных "View Data..." все правильно работает.
Похоже, что Вы используете сторонний Query Builder и потому не можете оперативно исправить.
Ну да ладно, это мелочи.
У меня есть просьба посерйознее.
Большая просьба - добавьте отдельный адаптер для Oracle ODP.NET!
Он очень просто делается на базе стандартного.
Нужны лишь косметические правки связанные с заменой библиотеки System.Data.OracleClient на Oracle.DataAccess.Client да подправить ф-ию ConvertDbTypeToTypeInternal.
Кроме того, есть веская причина добавить адаптер для ODP.NET - Microsoft прекращает разработку Oracle Client в ADO.NET 4.
Это уже год как известно.
Присоединил свой вариант под ODP.NET.
(он пока без получения списка объектов)
Может быть в Вашем решении и есть некий глубокий смысл, но лично я таких решений больше не встречал...Anton писал(а): >>1. Edit Data Source – при наличии изменений по кнопке «Cancel» не выдается запрос подтверждения закрытия окна (по нажатию на крестик спрашивает)
Все работает правильно. Запрос выдается для случаев, если пользователь нажал Escape или Alt+F4. А на «Cancel» его просто не должно быть!
Если данные не были сохранены, то какая разница, каким именно способом пользователь закрывает окно?
Это ведь защита от ошибки, а юзер в любом случае может ошибиться.
Например, юзер привык к линуксовому расположению кнопок ("ОК" справа) и случайно нажал "Cancel".
Кроме того, в том же "Query Builder" поведение другое, запрос выдается даже на нажатие кнопки "Close".
В целом это не проблема, но я такое поведение считаю нелогичным.
Очень жаль. Это досадное упущение...Anton писал(а): >>2. QueryBuilder – возникает необработанная ошибка при наличии в запросе полей типа BLOB, CLOB (возможно и прочих бинарных, типа LONG и пр.):
The following exception occurred in the DataGridView: System.ArgumentException: Parameter is not valid.
К сожалению, пока остается так как есть, мы не можем ничего изменить.
Хорошо, хоть в просмотре данных "View Data..." все правильно работает.
Похоже, что Вы используете сторонний Query Builder и потому не можете оперативно исправить.
Ну да ладно, это мелочи.
У меня есть просьба посерйознее.
Большая просьба - добавьте отдельный адаптер для Oracle ODP.NET!
Он очень просто делается на базе стандартного.
Нужны лишь косметические правки связанные с заменой библиотеки System.Data.OracleClient на Oracle.DataAccess.Client да подправить ф-ию ConvertDbTypeToTypeInternal.
Кроме того, есть веская причина добавить адаптер для ODP.NET - Microsoft прекращает разработку Oracle Client в ADO.NET 4.
Это уже год как известно.
Присоединил свой вариант под ODP.NET.
(он пока без получения списка объектов)
- Вложения
-
- Stimulsoft.Report.OracleClientODP.rar
- (322.63 КБ) 171 скачивание
Список объектов БД для Oracle Connection
Здравствуйте,
Спасибо.
Пока оставим все как есть.Может быть в Вашем решении и есть некий глубокий смысл, но лично я таких решений больше не встречал...
Если данные не были сохранены, то какая разница, каким именно способом пользователь закрывает окно?
Это ведь защита от ошибки, а юзер в любом случае может ошибиться.
Например, юзер привык к линуксовому расположению кнопок ("ОК" справа) и случайно нажал "Cancel".
Кроме того, в том же "Query Builder" поведение другое, запрос выдается даже на нажатие кнопки "Close".
В целом это не проблема, но я такое поведение считаю нелогичным.
Так и есть. Очень большие сложности с изменением этого компонента - как по программной части так и по лицензионной.Это досадное упущение...
Хорошо, хоть в просмотре данных "View Data..." все правильно работает.
Похоже, что Вы используете сторонний Query Builder и потому не можете оперативно исправить.
Сделаем. Здесь потом отпишемся.Большая просьба - добавьте отдельный адаптер для Oracle ODP.NET!
Он очень просто делается на базе стандартного.
Нужны лишь косметические правки связанные с заменой библиотеки System.Data.OracleClient на Oracle.DataAccess.Client да подправить ф-ию ConvertDbTypeToTypeInternal.
Кроме того, есть веская причина добавить адаптер для ODP.NET - Microsoft прекращает разработку Oracle Client в ADO.NET 4.
Это уже год как известно.
Спасибо.
Список объектов БД для Oracle Connection
Hello,
Добавили адаптер на страницу Downloads. Добавили поддержку адаптера в генератора отчетов. Дайте знать если что-то не так.
Thank you.
Добавили адаптер на страницу Downloads. Добавили поддержку адаптера в генератора отчетов. Дайте знать если что-то не так.
Thank you.
Список объектов БД для Oracle Connection
Здравствуйте!
Поправьте, пожалуйста ссылку на новый адаптер.
Обе ссылки (стандартный адаптер и ODP) сейчас указывают на один файл:
http://www.stimulsoft.com/Downloads/OracleDatabase.zip
Спасибо
Поправьте, пожалуйста ссылку на новый адаптер.
Обе ссылки (стандартный адаптер и ODP) сейчас указывают на один файл:
http://www.stimulsoft.com/Downloads/OracleDatabase.zip
Спасибо
Список объектов БД для Oracle Connection
Здравствуйте,
Спасибо большое за указание на ошибку. Поправили линк.
Спасибо большое за указание на ошибку. Поправили линк.
Список объектов БД для Oracle Connection
Мне кажется, что работа с типами параметров не совсем корректно реализована, хотя почти все нормально работает.
В стандартном адаптере список типов такой:
а в ODP он отличается:
В случае ODP в свойствах параметра источника отображается список типов стандартного адаптера, и у меня есть подозрения, что не верно выполняется биндинг параметров.
Я по быстрому не нашел в коде места, где заполняется список типов для параметров.
Проверьте, пожалуйста.
В стандартном адаптере список типов такой:
Код: Выделить всё
public enum OracleType
{
BFile = 1,
Blob = 2,
Char = 3,
Clob = 4,
Cursor = 5,
DateTime = 6,
IntervalDayToSecond = 7,
IntervalYearToMonth = 8,
LongRaw = 9,
LongVarChar = 10,
NChar = 11,
NClob = 12,
Number = 13,
NVarChar = 14,
Raw = 15,
RowId = 16,
Timestamp = 18,
TimestampLocal = 19,
TimestampWithTZ = 20,
VarChar = 22,
Byte = 23,
UInt16 = 24,
UInt32 = 25,
SByte = 26,
Int16 = 27,
Int32 = 28,
Float = 29,
Double = 30,
}
Код: Выделить всё
public enum OracleDbType
{
BFile = 101,
Blob = 102,
Byte = 103,
Char = 104,
Clob = 105,
Date = 106,
Decimal = 107,
Double = 108,
Long = 109,
LongRaw = 110,
Int16 = 111,
Int32 = 112,
Int64 = 113,
IntervalDS = 114,
IntervalYM = 115,
NClob = 116,
NChar = 117,
NVarchar2 = 119,
Raw = 120,
RefCursor = 121,
Single = 122,
TimeStamp = 123,
TimeStampLTZ = 124,
TimeStampTZ = 125,
Varchar2 = 126,
XmlType = 127,
Array = 128,
Object = 129,
Ref = 130,
BinaryDouble = 132,
BinaryFloat = 133,
}
Я по быстрому не нашел в коде места, где заполняется список типов для параметров.
Проверьте, пожалуйста.
Список объектов БД для Oracle Connection
Пока вопрос снимается.
Так выходит, когда подключаешь одновременно обе библиотеки.
Так выходит, когда подключаешь одновременно обе библиотеки.
Список объектов БД для Oracle Connection
Разбираемся дальше...
Удалил из GAC все библиотеки, установил новую версию в отдельную папку, скопировал туда Stimulsoft.Report.OracleODP.dll.
В процессе создания источника данных все работает нормально.
При попытке просмотра отчета ошибка:
Ошибка:
Удалил из GAC все библиотеки, установил новую версию в отдельную папку, скопировал туда Stimulsoft.Report.OracleODP.dll.
В процессе создания источника данных все работает нормально.
При попытке просмотра отчета ошибка:
Подкладываю Stimulsoft.Report.OracleClient.dll.----------------------------
[General Info]
Application: Stimulsoft Reports.Net
Framework: v2.0.50727
Version: Version: 2010.2.711 from 26 April 2010
OSVersion: Microsoft Windows NT 6.1.7600.0
----------------------------
[Exception Info]
Message: Referenced assembly 'Stimulsoft.Report.OracleClient.dll' not found
Source: Stimulsoft.Report
StackTrace:
at Stimulsoft.Report.StiReport.GetReferencedAssemblies()
at Stimulsoft.Report.StiReport.Compile(String path, Stream stream, StiOutputType outputType, Boolean autoCreate, Object standaloneReportType)
at Stimulsoft.Report.StiReport.Compile()
at Stimulsoft.Report.Design.Controls.StiDesignerPreviewControl.btRefresh_Click(Object sender, EventArgs e)
----------------------------
[Assemblies]
mscorlib, Version = 2.0.0.0
Stimulsoft.Base, Version = 2010.2.711.0
Stimulsoft.Report, Version = 2010.2.711.0
Stimulsoft.Report.Design, Version = 2010.2.711.0
System.Windows.Forms, Version = 2.0.0.0
Ошибка:
----------------------------
[General Info]
Application: Stimulsoft Reports.Net
Framework: v2.0.50727
Version: Version: 2010.2.711 from 26 April 2010
OSVersion: Microsoft Windows NT 6.1.7600.0
----------------------------
[Exception Info]
Message: Unable to cast object of type 'Oracle.DataAccess.Client.OracleDataAdapter' to type 'System.Data.OracleClient.OracleDataAdapter'.
Source: Stimulsoft.Report.OracleClient
StackTrace:
at Stimulsoft.Report.Dictionary.StiOracleSource.UpdateParameters()
at Stimulsoft.Report.Dictionary.StiOracleAdapterService.ConnectDataSourceToData(StiDictionary dictionary, StiDataSource dataSource, Boolean loadData)
at Stimulsoft.Report.Dictionary.StiDataSource.Connect(StiDataCollection datas, Boolean loadData)
at Stimulsoft.Report.Dictionary.StiDataSourcesCollection.Connect(StiDataCollection datas, Boolean loadData)
at Stimulsoft.Report.Dictionary.StiDictionary.Connect(Boolean loadData)
at Stimulsoft.Report.Engine.StiRenderProviderV2.ConnectToData(StiReport report)
at Stimulsoft.Report.Engine.StiRenderProviderV2.Render(StiReport report, StiRenderState state)
at Stimulsoft.Report.Engine.StiReportV2Builder.RenderSingleReport(StiReport masterReport, StiRenderState renderState)
at Stimulsoft.Report.StiReport.RenderReport(StiRenderState renderState)
at Stimulsoft.Report.StiReport.Render(StiRenderState renderState, StiGuiMode guiMode)
at Stimulsoft.Report.StiReport.Render(Boolean showProgress)
at Stimulsoft.Report.Design.Controls.StiDesignerPreviewControl.btRefresh_Click(Object sender, EventArgs e)
----------------------------
[Assemblies]
mscorlib, Version = 2.0.0.0
Stimulsoft.Base, Version = 2010.2.711.0
Stimulsoft.Report, Version = 2010.2.711.0
Stimulsoft.Report.Design, Version = 2010.2.711.0
System.Windows.Forms, Version = 2.0.0.0