![]() |
|
![]() ![]() ![]() |
|
Akella |
|
||||||||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
MySQL5, D2007, ADO, ODBC.
База живёт на хостинге (Joomla!1.5). Установил дрова "MySQL ODBC 5.1". Соорудил строку подключения. Подключение проходит без ошибок. "Вижу" таблицы их поля в базе и т.д. Запрос вставил в кверю:
Возвращает 0 и запись не добавляется в талицу базы данных. Я так понимаю, что в ADO не обязательно явных управлений транзакциями? с ADO+MySQL первый раз столкнулся. Может я что не так делаю? Provider=MSDASQL.1;Password=пароль;Persist Security Info=True;User ID=юзверь;Mode=ReadWrite;Extended Properties="DRIVER={MySQL ODBC 5.1 Driver};юзверь;PWD=пароль;SERVER=сервер.com.ua;DATABASE=имя базы;PORT=3306;" Добавление записи через EMS SQL Manager проходит нормально. Добавлено @ 17:26 Добавил ещё одну кверю, к ней прикрутил DataSource с DBGrid`ом
пытаюсь открыть - ошибка:
Это сообщение отредактировал(а) Rodman - 9.1.2009, 10:08 |
||||||||
|
|||||||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
А если к ADOQuery не подключен DataSource, то ADOQuery открываетя нормально. Такая же ошибка и с ADOTable
|
|||
|
||||
Dobermann |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 992 Регистрация: 7.1.2008 Репутация: нет Всего: 0 |
||||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
После изменения я лезу в EMS SQL Manager и переоткрываю таблицу.
Кверя возвращает 0, а по идее должна возвращать 1 в случае успешного ExecSQL |
|||
|
||||
Dobermann |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 992 Регистрация: 7.1.2008 Репутация: нет Всего: 0 |
Ну а смысл переоткрывать таблицу, если в ADOTable/ADOQuery не изменены поля...2 раза по компоненту ADOTable/ADOQuery кликни, удали все поля, затем в контекстном меню выбери add all поля(уже не помню как там) |
|||
|
||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 35 Всего: 130 |
У меня такая ошибка была в следующей ситуации. Есть DBF-файл. В нем есть числовое поле длиной 4. В него запросом - не из моей программы, а из другой - вставляется число, цифр в котором больше, чем 4. Почему-то это проходит нормально, правда, не знаю, что именно вставляется при этом. Но когда после этого уже моя программа (через ADO, разумеется) пытается открыть эту таблицу, то вылезает такая вот ошибка, причём сама таблица открывается нормально, а ошибка вылезает на попытке получить AdoTable.Recordcount. С MySql не работал, поэтому ничего точно сказать не могу, но... -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
Dobermann |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 992 Регистрация: 7.1.2008 Репутация: нет Всего: 0 |
Да потому что ADOtable надо обновлять после всяких изменений! Воткнул в это делая курсовую... |
|||
|
||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 35 Всего: 130 |
Каких всяких изменений? Ошибка вылезает при первом же обращении к .recordcount, а моя прога в эту таблицу вообще никаких изменений не вносит, она только читает данные. -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
Dobermann |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 992 Регистрация: 7.1.2008 Репутация: нет Всего: 0 |
||||
|
||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 35 Всего: 130 |
Ну да. Таблица, а не база. ![]() -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
ничё не понял, зачем мне поля?? мне нужно всего лишь добавить/изменить данные в базе, тянуть на клиента мне не требуется. Добавлено через 3 минуты и 22 секунды отпадает, один и тот же скрипт работает в EMS и не работает в ADO Добавлено через 5 минут и 36 секунд
мне ничего обновлять не нужно, мне нужно 1. сделать запрос типа select count(*) from table where id = :id 2. если есть такая запись, то полностью заменить в ней все поля, если нету записи с таким ID, то вставить новую. ВСЁ Добавлено через 7 минут и 9 секунд Вобщем ещё будут соображения? ![]() |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
Перехожу на ZeosDBO
![]() |
|||
|
||||
СЭНСЭЙ |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 432 Регистрация: 20.3.2006 Репутация: нет Всего: нет |
Хочу работать с MySQL из Делфи, желательно 5
подскажите с чего начать. Если есть - дайте примеры |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
Скачай AnyDac первой версии, она бесплатная. Там есть и доки и примеры.
|
|||
|
||||
flomaster |
|
|||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 28.12.2007 Где: СПб Репутация: нет Всего: нет |
WinXP SP2, Delphi 7, MySQL 5.0.67, MySQL ODBC 5.1 Driver
База данных прописана в источниках данных BDEAdministrator. ADOConnection, строка подключения: Provider=MSDASQL.1;Persist Security Info=False;User ID=root;Data Source=mybase; Connected легко устанавливается в True. При создании строки CommandText в ADODataSet открывается редактор, видны списки таблиц, полей. Курсор clUseClient + ctDynamic. Штатно создается запрос. Например, "Select * from table". При попытке открыть набор выдается Error: "Поставщик данных или другая служба вернули состояние E_FAIL." При этом запрос с одним полем (ключевым) открывается нормально "Select id from table" В привязанном гриде отображаются строки со значениями ключа. С другим полем "select Name from table;" дает "состояние E_FAIL." При установке курсора clUseServer и любом CursorType получаю Error: Dataset does not support bookmarks, which are required for multi-record data controls. Zeos обязательно попробую, но хочу понять как открывать через ADO. Куда рыть? Это сообщение отредактировал(а) flomaster - 1.7.2009, 22:19 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Базы данных и репортинг" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |