Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.16;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.57 MB
Время: 0.038 c
2-1144052701
serg111111
2006-04-03 12:25
2006.04.16
Помогите разобраться с сервисом


4-1138778434
Davinchi9
2006-02-01 10:20
2006.04.16
Как изменить положение ProgressBar в загрузчике ядра WinXP


2-1143644448
Fl@sh
2006-03-29 19:00
2006.04.16
TMemoryStream TidTCPClient..server


2-1143564528
dubolom
2006-03-28 20:48
2006.04.16
Работа с большими числами


2-1144040924
dera
2006-04-03 09:08
2006.04.16
Как программно "привязать" DBGrid к DataSource?