Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
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 Заголовок сообщения: |
|
|
Ну чтож, всем спасибо, проблему мы решили сами
Если кому интересно, рад сообщить, что такой зоопарк всё же имеет право на жизнь!
Кратко: пошли по пути коннекта через 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
И убеждаемся, что всё работает
Ещё раз всем спасибо за участие. _________________ //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 |
|
Вернуться к началу |
|
|
vovic
Зарегистрирован: 25.07.2007 Сообщения: 3
|
Добавлено: Вт Июл 31 2007 08:39 Заголовок сообщения: |
|
|
Ну почему же?
Конечно, бесплатный сыр только в мышеловке. Да даже если вы поставите эту версию оракла и сравните с полной, то тоже немало удивитесь отсутствию многих утилит. Но... Эта версия бесплатна! Это главное. И теперь оракл тоже может конкурировать с MySQL на малых приложениях. А это не кислая доля рынка. Да и для наших задач, в конце концов, и этого достаточно. Но это всё уже к теме не относится. Я не пропагандирую оракл. Просто у меня была конкретная задача, которую сразу решить не удалось, поэтому пришлось запросить "помощь клуба" _________________ //vovic |
|
Вернуться к началу |
|
|
|