Перейти к содержанию

Вопрос для программистов


Goosf

Рекомендуемые сообщения

Вопрос такой.

Есть база данных MySQL, та что крутится и ведет статистику полетов на нашем сервере.

Мне нужно к ней обратиться, но не знаю, как это можно сделать. Если есть у кого-то пример, желательно с применением технологии ADO.

Если можно - то хотелось бы видеть пример кода.

б/н 31
—-
kznameni_for.jpgkzvezda_for.jpgkzvezda_for.jpg
zazaslugi_for.jpgzazaslugi_for.jpgzazaslugi_for.jpg
10years_for.jpg

Ссылка на комментарий
Поделиться на другие сайты

http://dev.mysql.com/downloads/connector/net/

 

Скачай оттуда. Программно я при его помощи не доставал данные, однако SSIS его подхватил и данные показал.

 

И еще у SQL Server 2008R2 CTP есть MySQL-ный драйвер. У 2008-го тоже есть, но ODBC-шный.

In theory there is no difference between theory and practice. In practice there is.

Ссылка на комментарий
Поделиться на другие сайты

В догонку - обращаться точно также как с MS SQL данными, просто провайдера этого указывать.

In theory there is no difference between theory and practice. In practice there is.

Ссылка на комментарий
Поделиться на другие сайты

Я скачал и установил. Только не разобрался в документации. Пробовал создавать объект, который там указан - не получилось.

Если есть возможность, выложи пожалуйста пример кода.

б/н 31
—-
kznameni_for.jpgkzvezda_for.jpgkzvezda_for.jpg
zazaslugi_for.jpgzazaslugi_for.jpgzazaslugi_for.jpg
10years_for.jpg

Ссылка на комментарий
Поделиться на другие сайты

1С предприятие 7.7

 

Там есть метод создания OLE-объектов.

Пример кода:

Соединение=СоздатьОбъект("ADODB.Connection");

ТекСервер="test";

ТекПароль="123";

ТекБаза="testbase";

СтрокаКоннекта="driver={SQL Server};server="+ТекСервер+";uid=sa;pwd="+ТекПароль+";Database="+ТекБаза;

Соединение.ConnectionTimeOut=20;

Соединение.CursorLocation=3;

Попытка

Соединение.Open(СтрокаКоннекта);

Исключение

Предупреждение("Невозможно установить соединение с базой данных!");

//Действия

 

//********

КонецПопытки;

ЗапросАДО=СоздатьОбъект("ADODB.Command");

ЗапросАДО.ActiveConnection=Соединение;

ТекстЗапроса="";

ЗапросАДО.CommandText=ТекстЗапроса;

Выборка=ЗапросАДО.Execute();

Если Выборка.EOF()=-1 Тогда

//Выборка пустая

//Действия

 

//********

Иначе

Выборка.MoveFirst();

Пока Выборка.EOF()=0 Цикл

//Обработка выборки данных

//...=Выборка.Fields(["ИмяПоля"/Номер]).Value);

 

//*****************

Выборка.MoveNext();

КонецЦикла;

КонецЕсли;

Выборка.Close();

Соединение.Close();

Выборка="";

ЗапросАДО="";

Соединение="";

б/н 31
—-
kznameni_for.jpgkzvezda_for.jpgkzvezda_for.jpg
zazaslugi_for.jpgzazaslugi_for.jpgzazaslugi_for.jpg
10years_for.jpg

Ссылка на комментарий
Поделиться на другие сайты

Собственно вопрос - какой объект создавать? ADODB.Connection ?

Если да - то как писать строку соединения.

Там порт еще требуется указывать, в интернете пробовал нарыть примеры, но соединиться не получается.

Сам сервер работает успешно - с ним работает il2SC, с ним же работает сайт.

То есть вывод - что сам MySQL настроен корректно и работает.

б/н 31
—-
kznameni_for.jpgkzvezda_for.jpgkzvezda_for.jpg
zazaslugi_for.jpgzazaslugi_for.jpgzazaslugi_for.jpg
10years_for.jpg

Ссылка на комментарий
Поделиться на другие сайты

Может тебе тогда лучше скачать ODBC драйвер?

 

Тогда создашь новый DSN и к нему присоединишься? Вроде в семерке можно к ODBC коннектиться?

In theory there is no difference between theory and practice. In practice there is.

Ссылка на комментарий
Поделиться на другие сайты

Собственно вопрос - какой объект создавать? ADODB.Connection ?

Если да - то как писать строку соединения.

Там порт еще требуется указывать, в интернете пробовал нарыть примеры, но соединиться не получается.

Сам сервер работает успешно - с ним работает il2SC, с ним же работает сайт.

То есть вывод - что сам MySQL настроен корректно и работает.

 

Почему ADODB.Connection? Вроде класс там называется MySQLConnection, и кроме того, из туториала я вижу, что строку соединения надо подсовывать в конструктор уже при создании, а не передавать в метод Open, как у тебя. Open, по API, вообще никаких аргументов не принимает.

 

Порт пиши стандартный 3306

С уважением, terror

Ссылка на комментарий
Поделиться на другие сайты

Я показал пример, как я работаю с MS SQL через ADO.

Ну собственно нужен пример, как работать с MySQL.

Я пробовал и так и так, наверное просто не разобрался.

Если кто-то может на основании моего примера ADO написать аналогичный код для MySQL, буду благодарен.

б/н 31
—-
kznameni_for.jpgkzvezda_for.jpgkzvezda_for.jpg
zazaslugi_for.jpgzazaslugi_for.jpgzazaslugi_for.jpg
10years_for.jpg

Ссылка на комментарий
Поделиться на другие сайты

Ага. А то я не понял. Я бы могу набросать код, есть одна крупная у меня непонятка. Ты мне скажи

 

СоздатьОбъект("ADODB.Connection") - вот этот ADODB.Connection - это откуда взялось? Как вообще работает этот СоздатьОбъект.

Вот это будет работать?

Соединение = СоздатьОбъект("MySqlConnection(" + СтрокаКоннекта + ")");

С уважением, terror

Ссылка на комментарий
Поделиться на другие сайты

Нет, так работать не будет.

СоздатьОбъект - CreateObject по английски - создает OLE-объект и возвращает ссылку на него в нашу переменную.

Далее мы по ОЛЕ обращаемся к свойствам и методам этого объекта.

Самый простой вариант был бы если бы можно было создать объект ADO.NET ADODB.Connection и через него работать.

 

То есть я по технологии OLE могу создать любой объект, имеющий свой интерфейс и работать с ним. Хоть картинку, хоть WORD с EXCEL-ем, хоть интернет эксплорер.

б/н 31
—-
kznameni_for.jpgkzvezda_for.jpgkzvezda_for.jpg
zazaslugi_for.jpgzazaslugi_for.jpgzazaslugi_for.jpg
10years_for.jpg

Ссылка на комментарий
Поделиться на другие сайты

Да, понял, тогда Альфа правильно говорит, нужен просто драйвер ODBC, и тогда этот код будет спокойно работать и для МуСкула. Просто вот тут driver={SQL Server} надо будет вместо SQL Server прописать драйвер МуСкула.

 

Читай здесь: http://dev.mysql.com/doc/refman/5.1/en/connector-odbc.html

С уважением, terror

Ссылка на комментарий
Поделиться на другие сайты

Ставишь ODBC дравер MySQL. Создаешь новое DSN, пусть 'test_mys_db'. Указываешь там сервер, порт, пользователя, пароль и базу.

 

СтрокаКоннекта="dsn=test_mys_db";

 

Если не пройдет, то добавь uid и pwd.

In theory there is no difference between theory and practice. In practice there is.

Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...