Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

C#, Oracle и Linux

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
vovic



Зарегистрирован: 25.07.2007
Сообщения: 3

СообщениеДобавлено: Ср Июл 25 2007 12:00    Заголовок сообщения: C#, Oracle и Linux Ответить с цитатой

Есть рабочее виндовое приложение на C#, в котором есть обращение к БД Оракл с помощью ораклового клиента.

Код:

using System;
using System.Data;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;

namespace mono2
{
   class Program
   {
       static void Main(string[] args)
       {
           string connectionString =
              "Data Source=Ora-serv;" +
              "User ID=test;" +
              "Password=test;";
           OracleConnection dbcon = null;
           dbcon = new OracleConnection(connectionString);
           dbcon.Open();
           OracleCommand dbcmd = dbcon.CreateCommand();
           string sql = "SELECT * FROM employee";
           dbcmd.CommandText = sql;
           Console.WriteLine("Создаем ридер");
           OracleDataReader reader = dbcmd.ExecuteReader();
           Console.WriteLine("ридер создан");
           while (reader.Read())
           {
               string zname = (string)reader["zname"];
               Console.WriteLine(" Name: {0}", zname);
           }

           // clean up
           reader.Close();
           reader = null;
           dbcmd.CommandText = sql;
           dbcmd.ExecuteNonQuery();
           dbcmd.Dispose();
           dbcmd = null;
           dbcon.Close();
           dbcon = null;
       }
   }
}


Проблема в том, чтобы портировать это приложение под Linux (mono). На линукс тоже есть оракл-клиент к серверу 10g ex.
Кто-нибудь решал такую задачу?
_________________
//vovic
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
vovic



Зарегистрирован: 25.07.2007
Сообщения: 3

СообщениеДобавлено: Пн Июл 30 2007 15:53    Заголовок сообщения: Ответить с цитатой

Ну чтож, всем спасибо, проблему мы решили сами Smile

Если кому интересно, рад сообщить, что такой зоопарк всё же имеет право на жизнь! Wink

Кратко: пошли по пути коннекта через ODBC.

Использовали недавно объявленный Ораклом бесплатный сервер 10 g Express Edition, его аккуратно установили на Linux машине, тут надо было особое внимание обратить на прописывание переменных окружения, которые требует документация. Там же в глубинах установленного сервера есть скриптик, который устанавливает ODBC драйвер. По нему тоже есть всё в описании. Нужно наличие ещё такой приблуды, как DataManager и др. из пакета unixODBC. Эта вещь тоже должна быть инсталлирована на Linux машине. Ну вот и всё собственно. Теперь берём немножко подправленный код из первого поста этой ветки:

Код:

using System;
using System.Data;
using System.Data.Odbc;

namespace mono2
{
    class Program
    {
        static void Main(string[] args)
        {
            string connectionString = "DSN=OracleODBC-10g;" +
                                      "UID=hr;PWD=hr";
            IDbConnection dbcon = null;
            dbcon = new OdbcConnection(connectionString);
            dbcon.Open();
            IDbCommand dbcmd = dbcon.CreateCommand();
            string sql = "SELECT JOB_TITLE FROM jobs";
            dbcmd.CommandText = sql;
            IDataReader reader = dbcmd.ExecuteReader();
            while (reader.Read())
            {
                string JOB_TITLE = (string)reader["JOB_TITLE"];
                Console.WriteLine(" Name: {0}", JOB_TITLE);
            }
            reader.Close();
            reader = null;
            dbcmd.Dispose();
            dbcmd = null;
            dbcon.Close();
            dbcon = null;
        }
    }
}

компилируем его (можно даже под Виндой), полученный exeшник выполняем на Linux-машине:

# mono mono2.exe

И убеждаемся, что всё работает Smile

Ещё раз всем спасибо за участие.
_________________
//vovic
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Kefir



Зарегистрирован: 16.04.2005
Сообщения: 443
Откуда: Пермь

СообщениеДобавлено: Вт Июл 31 2007 05:58    Заголовок сообщения: Ответить с цитатой

А на эту подставу, Вы наверное не обратили внимания:

Any use of the Oracle Database Express Edition is subject to the following limitations;
1. Express Edition is limited to a single instance on any server;
2. Express Edition may be installed on a multiple CPU server, but may only be executed on one processor in any server;
3. Express Edition may only be used to support up to 4GB of user data (not including Express Edition system data);
4. Express Edition may use up to 1 GB RAM of available memory.


Впрочем, если Вас удовлетворяют такие ограничения, то проблем нет.
_________________
Самоловских Виталий aka Kefir
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
vovic



Зарегистрирован: 25.07.2007
Сообщения: 3

СообщениеДобавлено: Вт Июл 31 2007 08:39    Заголовок сообщения: Ответить с цитатой

Ну почему же? Wink
Конечно, бесплатный сыр только в мышеловке. Да даже если вы поставите эту версию оракла и сравните с полной, то тоже немало удивитесь отсутствию многих утилит. Но... Эта версия бесплатна! Это главное. И теперь оракл тоже может конкурировать с MySQL на малых приложениях. А это не кислая доля рынка. Да и для наших задач, в конце концов, и этого достаточно. Smile Но это всё уже к теме не относится. Я не пропагандирую оракл. Просто у меня была конкретная задача, которую сразу решить не удалось, поэтому пришлось запросить "помощь клуба" Wink
_________________
//vovic
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...