Форум: "Начинающим";
Текущий архив: 2006.04.16;
Скачать: [xml.tar.bz2];
ВнизMySql + dbExpress + Delphi 2005, кто может помочь? Найти похожие ветки
← →
Sergio77 (2006-02-03 01:40) [0]Установлена MySql;
Там созана база А, в ней таблица В.
На форму бросил компонент SqlConnection, прописал (localhost, юзера и пароль, имя базыl, выбрал mysql), (соединяюсь нормально)
Дальше SQLTable, там прописал SQLConnection и имя таблицы ранее описаный,
DataSource - в нем прописал SQLTable, дальше DBGrid, но он не хочет выбирать DataSource пишет "Operation not allowed on unidirectional dataset".
Пока это..
Использовал сторонний dbgrid, он не ругается, но и не отображает ничего..
Подсоединиться могу, просмотреть таблицы - нет.
подскажите, как правильно, что делать, я уже запутался :(
D 2005.
← →
sniknik © (2006-02-03 08:41) [1]посмотри пример, как там связка делается
x:\Program Files\Borland\Delphi7\Demos\Db\DbxExplorer
dbExpress по моему не умеет обычные рекордсеты выдавать, только однонаправленные, а грид в свою очередь не умеет с такими работать ему нужно чтобы позволялась навигация.
осюда все "беды", выход (в примере) для данных которые хотят отображать в дриде (и аналогичных "мультизаписьных"), в том что данные перекачивают в клиентский рекордсет.
кстати в "стороннем dbgrid-е" вполне может быть свойство типа "кешировать данные" по которому он сделает тоже самое, т.е. закачает все данные "в себя" и будет отображать уже их. но это уже с к специалистам по "сторонним dbgrid-ам".
← →
sniknik © (2006-02-03 08:43) [2]а вообще я бы лучше поменял компоненты... на ADO к примеру. (там тип желаемого рекордсета можно задать)
← →
Reindeer Moss Eater © (2006-02-03 09:06) [3]А что, неужели к этому чуду техники oledb провайдер есть?
← →
sniknik © (2006-02-03 10:33) [4]> А что, неужели к этому чуду техники oledb провайдер есть?
ODBC есть точно и этого достаточно, а oledb... не уверен, читал давно вроде собирались делать, но сделали или нет, не знаю, также давно и на сайт к ним не заходил (и не тянет).
← →
sniknik © (2006-02-03 10:35) [5]причем может не родные, может кто сторонний сподобился... (вот сделал же Zeos вполне приличные oledb драйвера для IB... а ведь не они разработчики)
← →
Reindeer Moss Eater © (2006-02-03 11:13) [6]Я полгода назад искал фриварные провайдеры к ИБ.
Не нашел ни одного не кривого.
Было два кандидата. Один с блоб-параметрами не умел работать, второй метаданные не не отдавал.
← →
sniknik © (2006-02-03 11:44) [7]> Я полгода назад искал фриварные провайдеры к ИБ.
да брось, полно их, в том числе и фриварные. нашол штук 6, самым приемлемым для себя отобрал ZStyle(ошибся ранее... :-(), он без всяких переделок со стороны уже готовой проги подошол, другие либо неправильно схемы возвращали (у меня используется) либо еще чего, ну помню уже. этот поддерживал все что у меня использовалось (блобы не использовал, но думаю должен, написан грамотно)
а ZStyle кстати имеет и фриварный вариант...
http://www.zstyle.dp.ua/rus/iboledb_prod.htm
← →
Reindeer Moss Eater © (2006-02-03 12:23) [8]Я сказал, что не нашел не кривых.
Фришный от ZStyle - то же кривой. Один из тех двух кандидатов про которых я писал.
← →
Reindeer Moss Eater © (2006-02-03 12:32) [9]IB Provider фриварный - то же кривой.
Он метаданные не возвращает.
ZStyl"овский - с блоб параметрами отказывается работать.
← →
DSKalugin © (2006-02-03 12:41) [10]если бы они не были кривыми, то за такие компоненты брали бы деньги
П.С. это вовсе не значит, что все фриварное - кривое
← →
Danilka © (2006-02-03 12:52) [11]sniknik © (03.02.06 08:41) [1]
> dbExpress по моему не умеет обычные рекордсеты выдавать,
> только однонаправленные
Аха, причем, об этом прямо в хелпе и написано, а также в "See also" ссылочка на описалово как к клиент датасету подключить.
← →
Reindeer Moss Eater © (2006-02-03 12:55) [12]П.С. это вовсе не значит, что все фриварное - кривое
Разумеется. Тот же dbExpress для MySQL предпочтительнее ADO + ODBC or OLE DB
← →
sniknik © (2006-02-03 13:20) [13]> ZStyl"овский - с блоб параметрами отказывается работать.
.... ??? а как насчет умения их готовить?
сделал простой пример
запрос
UPDATE TABLE1 SET BL=:Bl WHERE ID=1
вызов
ADOCommand1.Parameters.ParamByName("Bl").LoadFromFile("D:\Test.DBT", ftBlob);
ADOCommand1.Execute;
работает. блоб внесли. подключение к ZStyl-су. ...???
> если бы они не были кривыми, то за такие компоненты брали бы деньги
есть платный и бесплатный вариант, платный отличается только поддержкой судя по всему (написано об ограничении в месяц но у меня уже года полкора стоит и работает (правда время от времени, нужентолько в случае тестов, так то с IB и клонами мы не работаем))
← →
Reindeer Moss Eater © (2006-02-03 14:17) [14].... ??? а как насчет умения их готовить?
Допускаешь мысль, что я в таком коде мог сделать ошибку?
UPDATE TABLE1 SET BL=:Bl WHERE ID=1
ADOCommand1.Parameters.ParamByName("Bl").LoadFromFile("D:\Test.DBT", ftBlob);
Точно такой же запрос но на insert у меня обламывался.
← →
sniknik © (2006-02-03 15:16) [15]> Допускаешь мысль, что я в таком коде мог сделать ошибку?
я могу допустить все.
> Точно такой же запрос но на insert у меня обламывался.
проверил и с инсертом и блоб параметром. работает.
← →
Dvm_home (2006-02-21 05:31) [16]Привет всем
У меня вот такая проблема с dbExpress:
Есть настроеный SQLConnection (работает и нормально соединяется с базой),
в SQLDataSet указываю в соединении SQLConnection, commandType - ctQuery. В редакторе Commandtext непоявляется список таблиц и полей, запрос сам написал (select * from Workers). Выставляю значение свойства Active в True получаю сообщение:
Access violation at adress ... in module dbxmss30.dll. Read at adress ...
Что нитак ?
Delphi 2006, MySQL 5.0.15
запуск mysql_client_test.exe сервера выдает:
[MySQL-5.0.15][1045] Access denied for user "ODBC"@"localhost" (using password: NO)
← →
Наталья (2006-02-21 09:08) [17]DBexpress использует однонапрвленные курсоры, для визуального отображения данных в gride нужно использовать ClientDataset (к нему уже DataSourse), DataSet Provider - SqTable(sqlQuery..) -SQLConnection
← →
Dvm_home (2006-02-21 10:51) [18]Наталья (21.02.06 9:08) [17]
Да я знаю, но судя по хелпу сначала SQLConnection (для установления соединения), потом SQLDataSet (для запроса данных), DataSetProvider (для сохранения данных в локальный кеш), ClientDataset, DataSource ну а последним DBGri.
Так вот у меня возникают проблемы с SQLDataSet
← →
Плохиш © (2006-02-21 11:10) [19]
> Access denied for user "ODBC"@"localhost"
Перевожу "Пользователю "ODBC"@"localhost" запрещено использование"
Права настраивать в MySQL надо.
← →
Наталья (2006-02-21 11:12) [20]dbxmss30.dll - драйвер как будто MSSQL? драйвер должен быть типа dbexpmysql.dll. Что показывает SQLConnection?
← →
Dvm_home (2006-02-22 02:20) [21]Наталья (21.02.06 11:12) [20]
Да опшибся я с dll :), на самом деле используется dbxmys30.dll, dbexpmysql.dll - в Delphi 7, у меня Delphi 2006.
При попытке выставить у SQLConnection свойство Active в True появляется сообщение: Access violation at address ... in module dbxmys30.dll
← →
Dvm_home (2006-02-22 02:22) [22]Плохиш © (21.02.06 11:10) [19]
настроил, результатов ноль. При выставлении SQLConnection.Actuve = True - Access violation ....
← →
Dvm_home (2006-03-05 11:25) [23]Проблема так и осталась :(, неушто никто не работает с MySql через dbExpress?
Я уш и Zeos пробовал, но он под Delphi 2006 нехочет ставится
← →
Dvm_home (2006-03-11 14:17) [24]Проблему так и не решил ( с помощью dbExpress).
Сделал с помошью ADO, но в gride вместо русских букв отображаются вопросы.
← →
sniknik © (2006-03-11 23:42) [25]вопросы это неправильно приведенные к локальным юникодные строки. смотри по цепочке что используеш и где теряеш.
← →
Плохиш © (2006-03-12 21:36) [26]
> Dvm_home (22.02.06 02:22) [22]
> Плохиш © (21.02.06 11:10) [19]
>
> настроил, результатов ноль. При выставлении SQLConnection.
> Actuve = True - Access violation ....
Это никакого отошения к настройкам сервера не имеет, это у тебя ошибка в 17й строке.
← →
Dvm_home (2006-03-25 08:17) [27]sniknik © (11.03.06 23:42) [25]
а как это проследить ?
← →
Dvm_home (2006-03-25 08:18) [28]Плохиш © (12.03.06 21:36) [26]
и где эта строка ?
← →
sniknik © (2006-03-25 11:32) [29]> а как это проследить ?
как как, смотриш в разных местах различными средствами, желательно с гарантированной поддержкой.
в Query Analizer-у посмотрел, есть, значит в самой базе еще все в порядке, не записали уже так. в дельфях тест с применением компонент tnt(есть поддержка) сделал с ними нормально? значит преобразование в дельфе портило, нет смотри/смени провайдера данных на другого, ODBC на OLEDB (тут точно есть). и т.д. я не могу точно знать что ты используеш там у себя...
> и где эта строка ?
элементарно Ватсон! это строка между 16й и 18й. ;о))
http://podgoretsky.com/ftp/Language/nps/idioms.html
← →
Dvm_home (2006-03-27 08:32) [30]sniknik © (25.03.06 11:32) [29]
> элементарно Ватсон! это строка между 16й и 18й. ;о))
это конечно бесспорно :), но хотелось бы узнать поточнее ее местоположение
за "как проследить" - спасибо
← →
Dvm_home (2006-03-27 10:22) [31]sniknik © (25.03.06 11:32) [29]
Вот еще про 17 строку :)
Этот вопрос был по поводу использования dbExpress.
Стандартные компаненты. Кидаем на форму:
1. TSQLConnection, выставляем у него параметры соединения к базе и конектимся нормально, без ошибок
2. TSQLDataSet, соединение указываем TSQLConection, которое кинули перед этим, тип запроса - Query. Идем в CommandText - списка таблиц ненаблюдается, ну и ладно пишем сами ручками. Выставляем свойство Active в True и получаем замечательную ошибку "Access violation ..." в модуле dbxmys30.dll
← →
Dvm_home (2006-03-27 10:37) [32]sniknik © (25.03.06 11:32) [29]
Еще.
сервер MySql 4.1.18, Delphi 2006
Поясни пожалуста причем сдесь unicode если в настройках таблицы, на сервере, я указал раскладку у поля cp1251 и у таблицы тоже.
← →
sniknik © (2006-03-27 10:56) [33]> Вот еще про 17 строку :)
вот это она и есть, и не обязательно это именно код, в данном случае это непоказаная инфа/действия
> Этот вопрос был по поводу использования dbExpress.
> Стандартные компаненты. Кидаем на форму:
теперь "соберем" инфу, что имеем -> ошибка в dbxmys30.dll, замечательно (хоть чтото есть) делаем поиск по гуглю, находим ссылку
http://www.marcocantu.com/md2005/UpdateDelphi2006_ch14.html
читаем, делаем выводы, скачиваем новый драйвер.
получилось? да - вопрос решон, нет - нужна еще инфа. чегото не хватает.
а как решить чтото по "я все делаю правильно/по хелпу/описанию/как посоветовали/... но все равно ошибка? что я делаю не так?". но в том то и дело что даже делая "по хелпу" делают не так как написано, а так как сами поняли... ошибочно поняли... иначе не было бы ошибки. а как сделано показывать в упор не хотят. (поэтому всех таких я сразу заношу в категорию "можно потрепаться но толку скорее всего не будет")
> Поясни пожалуста причем сдесь unicode ...
я не знаю что там у тебя в настройках таблиц/базы/сервере (да я и MySql не зню... ну особо хорошо, так пару установок/тестов делал.), но я знаю что при неправильном приведении юникода получаются вопросы, сталкивался не раз, о чем и сказал. считаеш что у тебя "не тот случай"? ну так разбирайся какой, но я бы начал с юникода.
← →
sniknik © (2006-03-27 12:01) [34]> Поясни пожалуста причем сдесь unicode ...
дубль 2
вот совсем недавно
http://delphimaster.net/view/3-1143442572/
пост [3]
и с базами совсем не связано, просто копирование через клипборд, один редактор поддерживает юникод другой нет, или неправильно интерпретировал кодовую страницу при передаче, и вот результат. похоже на твое?
← →
Dvm_home (2006-03-29 15:22) [35]sniknik © (27.03.06 10:56) [33]
Подскажи пожалуста где можно это обновление скачать. У меня есть обновление драйвера с http://crlab.com/dbx, его я и поставил, с ним и получается работать с MySQL, но проблема с кодировкой. По ссылке [33] ходил, нашел там ссылку только на crlab.com, другого ненашел. Есть компаненты работы с MySQL, но они платные.
По поводу [34] - врятли. Я поставил компаненты tnt - с ними такая же картина - сплошные вопросы.
Еще при сохранении изменений ClientDataSet.ApplyUpdates(0) выдает месагу - Запись редактируется другим или ненайдена, хотя с базой я один работаю
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.04.16;
Скачать: [xml.tar.bz2];
Память: 0.6 MB
Время: 0.043 c