Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

связь с MySQL: почему ZeosLib работает, а через механизм ADO -нет [D7, MySQL]


TALLA ©   (2004-10-23 11:54:00) 

Используя:
ADOConnect = createoleobject('ADODB.Connection');
ConnectionString = 'Provider=SQLOLEDB.1;server=127.0.0.1;User ID=root;Persist Security Info=False;Initial Catalog=test';
ADOConnect.Open(ConnectionString);
Секунд через 15 показывает Exception - Server not exists or access denied.
Может строка connection string не верна или чего-нибудь в настройках MySQL изменить?
Через phpMyAdmin и MySQL Administrator все ок, через Access работает отлично именно этим способом.


TALLA   (2004-10-25 18:43:00) [1]

Вся база и операции только в 1С.
На MySQL только прайс лист выкидывается на сайт.
Вот думаю, как буферизацию изменений лучше сделать (чтобы кнопка Добавить или Изменить работала не сразу, а раз в 3 часа).
По идее проще сделать таблицу-буфер с одной колонкой. И глобальный таймер на истечение срока. Впрочем, это уже совсем другая история:)

Тема закрыта.


Nikolay M.   (2004-10-25 11:48:00) [2]


> т.е. все что 1С делает перекинуть в свой обьект?

Дык ему все равно это придется руками делать. База-то MySQL-ная, а не 1С-овская. Впрочем, от задачи все зависит. Наверное, на 1С крутится бэк, а на мускуле - фронт.


sniknik   (2004-10-25 11:02:00) [3]

> "Удалить клиента", "Списать деньги со счета" и т.д.
т.е. все что 1С делает перекинуть в свой обьект? не пойдет. не в смысле нельзя сделать, а просто муторно это для 1С. там и структуру базы/название таблиц/полей узнать проблемно... а уж изменять проще всего вызвав сам 1С в качестве сервера автоматизации. получится один другого дергает ;о)).
у нас на самом деле доступ к базе 1С делают только средствами 1С, а вот базу продаж (очень много данных) держат с своей структуризированной базе и к ней делают доступ через ADO, скорость по сравнению с тем же на 1С на пару порядков выше.
считаю такой "симбиоз" вполне нормален.


Nikolay M.   (2004-10-25 09:04:00) [4]


> sniknik ©   (24.10.04 21:39) [6]
> Nikolay M. ©   (24.10.04 20:00) [5]
> такой уже есть ADO... не что иное как упомянутый "СОМ-объектик",
> элементарно из 1С вызывается.

Само собой, но я имел ввиду, что можно создать свою прослойку в виде СОМ-объекта с любыми компонентами доступа, хоть через зеос, хоть через АДО, не суть важно, а из 1С дергать только высокоуровневые операции "Удалить клиента", "Списать деньги со счета" и т.д.


TALLA   (2004-10-25 01:39:00) [5]

>sniknik
Именно так и делаю.
>Где бы хелп толковый почитать про создание COM-объектов. Я пытался через wizard - мертвое дело. Ничего не понимаю. Хотя для задач кроме MySQL явно придется это дело изучить :(


sniknik   (2004-10-24 21:39:00) [6]

Nikolay M. ©   (24.10.04 20:00) [5]
такой уже есть ADO... не что иное как упомянутый "СОМ-объектик", элементарно из 1С вызывается.


Nikolay M.   (2004-10-24 20:00:00) [7]

Кошмар какой... :(
А ты создай на Дельфи СОМ-объектик и дергай его из 1С :)))


TALLA   (2004-10-24 17:54:00) [8]

Потому что Delphi это хорошо, но я 1C программист с недавних пор:)
там есть супер универсальная функция СоздатьОбъект(), которая позволяет управлять word, excel, mysql, etc.
Но нет ни одной функции для работы с dll :(
Так и живем.


Nikolay M.   (2004-10-24 16:11:00) [9]


> будет ли работать с чужим хостингом (база mysql у них)?

Если права тебе соотв. дадут, то будет.
Чисто из интереса: а зачем АДО, почему Зеос не подошел?


TALLA   (2004-10-24 15:19:00) [10]

С помощью build ConnectionString в итоге получилось следующее
Provider=MSDASQL.1;Persist Security Info=False;User ID=root;Data Source=sample-MySQL;Extended Properties="DSN=sample-MySQL;DATABASE=test;SERVER=127.0.0.1;UID=root;PORT=3306;OPTION=0;STMT=;"
И соответственно использование:

uses ADOInt;

Var R:_RecordSet;i,j:integer;s:string;
begin
R:=ADOConnection1.Execute('SELECT * FROM test',cmdText,[]);
// R.Save('d:\1.txt',2);//0 - as is, 1 - xml, 2 -
For i:=0 to R.RecordCount-1 do begin
 s:='';
 For j:=0 to R.Fields.Count-1 do begin
  s:=s+string((R.Fields.Item[j] as Field).Value)+' ';
 end;
 ListBox1.Items.Add(s);
 R.MoveNext;
end;

Работает, с учетом установленного у меня драйвера MyODBC с www.mysql.ru
А будет ли работать с чужим хостингом (база mysql у них)?


sniknik   (2004-10-23 17:45:00) [11]

естественно, приведенная строка для MSSQL.

> через Access работает отлично именно этим способом.
вряд ли, сравни строки, там она другая.


Наверх

Титульная страница Поиск, карта сайта Написать письмо