|
![]() |
#1 |
Участник
|
Спасибо за конструктивную критику, не знал про возможности решения моей проблемы, другими способами, всегда приятно иметь альтернативы. И возможность работать с аксой напрямую с другими базами тоже нужна. Поговорю с админами на счет настройки прав и вынос таблицы в отдельную файловую группу.
|
|
![]() |
#2 |
Модератор
|
__________________
-ТСЯ или -ТЬСЯ ? |
|
![]() |
#3 |
Участник
|
Обертка для работы со сторонней бд (с поддержкой контенеров)
SharedProject_IAU_SQL (1).xpo - проект IAU.rar - dll Можно без dll, тогда не перехватить сообщения от sql. чтобы все работало зайти в места поменять одноименные методы, класса метод nmExecuteNonQuery - sqlCommandForEx.ExecuteNonQuery(); на sqlCommand.ExecuteNonQuery(); Описание краткое n - net p - property s - set g - get m - method nps - net property Set npg - net property Get nm - net method Вопрос еще такой, как лучше делать обертках, наследовать классы или без наследования. Если наследовать тогда можно избежать методов которые работают с net классами, но тогда нужно следить за инициализацией всех объектов. Если не наследовать то есть методы которые принимают и возвращают net классы. Последний раз редактировалось Kainix; 17.06.2013 в 10:28. |
|
|
За это сообщение автора поблагодарили: raz (5). |
![]() |
#4 |
Участник
|
пример использования. Выбор и запись в таблицу, состоящую из 2х полей RefRecId int64(bigint) и BinData container(image).
Для доступа к конкретным полям нужна обертка для System.Data.DataSet X++: static void IAU_Connection(Args _args) { SysSqlConnection sysSqlConnection; SysSqlCommand SysSqlCommand; SysSqlConnectionStringBuilder sysSqlStringBuilder; SysSqlConnectionTable sysSqlConnectionTable; SysDataRowCollection sysDataRowCollection; SysDataRow sysDataRow; SysSqlDataReader sysSqlExecuteReader; System.Exception e; ; try { sysSqlStringBuilder = new SysSqlConnectionStringBuilder(); sysSqlStringBuilder.npsServer(''); sysSqlStringBuilder.npsDataBase(''); sysSqlStringBuilder.npsUserName(''); sysSqlStringBuilder.npsUserPassword(''); sysSqlConnection = new SysSqlConnection(sysSqlStringBuilder.npgConnectionString()); SysSqlCommand = sysSqlConnection.sysSqlCommand(); SysSqlCommand.npsCommandText("SELECT * from Table where RefrecId = @RefRecId"); SysSqlCommand.sysSqlParameterCollection().addSysSqlParameter("@RefRecId", 5637374403); sysSqlExecuteReader = SysSqlCommand.sysSqlExecuteReader(); sysSqlExecuteReader.nmRead(); if(sysSqlExecuteReader.npgHasRows()) { sysSqlExecuteReader.nmClose(); SysSqlCommand = sysSqlConnection.sysSqlCommand(); SysSqlCommand.npsCommandText("Update Table set binData = @BinData where RefrecId = @RefRecId"); SysSqlCommand.sysSqlParameterCollection().addSysSqlParameter("@RefRecId", 5637374403); SysSqlCommand.sysSqlParameterCollection().addSysSqlParameter("@BinData", connull()); SysSqlCommand.nmExecuteNonQuery(); } } catch(Exception::CLRError) { e = CLRInterop::getLastException(); if(e) { while(e) { info(e.get_Message()); e = e.get_InnerException(); } } e = SysSqlCommand.clrSqlExeption(); if(e) { while(e) { info(e.get_Message()); e = e.get_InnerException(); } } else { e = SysSqlCommand.clrExeption(); if(e) { while(e) { info(e.get_Message()); e = e.get_InnerException(); } } } } } Последний раз редактировалось Kainix; 17.06.2013 в 10:40. |
|
Теги |
ado, внешняя база |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|