![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
связь с 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 работает отлично именно этим способом.
вряд ли, сравни строки, там она другая.