![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
MS SQL и mySQL - глюки [D7, MSSQL, MySQL]
Fishka © (2004-06-21 15:56:00)В проекте ADoConnection к MS SQL (ADC), ADOQuery (ADQ),
ADoConnection к MySQL (ADM), ADOQuery (ADQ_my).
Программа работает неверно (некорректно заполняются
TstringList-ы). Драйвер mySQL 3.51.
Меняю в строке ConnectionString в ADM на базу MS SQL - и все нормально.
Наверно, мало информации, но все же в чем проблема и как с этим бороться?
Симафор Лютый (2004-06-25 21:43:00) [1]Вот и я говорю что фигня какая то, а Гендальф говорит, что ножницы. Проблема - коаксиалку на витую пару нужно заменить - будет работать точно! Проверено электроникой
Симафор Лютый (2004-06-25 21:42:00) [2]Вот и я говорю что фигня какая то, а гендальф говорит, что ножницы.
Andrick (2004-06-25 19:32:00) [3]Действительно, проблема все-таки в формате данных - он у MySQL и MS SQL очень даже разный, поэтому один и тот же код не приемлем. А мыло - подведи к нику, но не нажимай - в анкете-то как раз мыло не показывается :))
На худой конец, запиши так andrick_@mail.ru
bushmen (2004-06-25 15:58:00) [4]>Если коннект с mySQL есть, то например, 84-84=1.13Е-14.
Что-то слабо верится, что Delphi по-разному считает :)))
Мне кажется, что проблема в формате хранения данных в MySQL. Посмотри.
Fishka (2004-06-25 14:27:00) [5]Andrick © (24.06.04 15:57) [90]
Зачем так просто? Смотрю анкету - а там email нету.
bushmen © (24.06.04 16:11) [91]
3.23.58
Но проблема решена. Ошибок, а вернее неточностей, много.
Например,
if ((tt_s.sh=trebro[ii].sh) and (tt_s.dl=trebro[ii].dl)) or
((tt_s.sh=trebro[ii+1].sh) and (tt_s.dl=trebro[ii+1].dl)) then
неверно отрабатывает после коннекта с mySQL.
Если коннекта с mySQL нет, то например, 84-84=0.
Если коннект с mySQL есть, то например, 84-84=1.13Е-14.
Так что вышеприведенная функция исправлена. Сравнивания реальных чисел между собой нет. Теперь сравниваю только целые.
За советы спасибо Andrick © (ОГРОМНОЕ), Sandman25 ©, bushmen ©, Johnmen ©.
bushmen (2004-06-24 16:11:00) [6]>Версия mySQL 3.2. x
А конкретнее?
Andrick (2004-06-24 15:57:00) [7]Издеваешься? Наведи мышку на ник - получишь с строке состояния результат
Fishka (2004-06-24 08:53:00) [8]Версия mySQL 3.2.x.. Вроде получилось через BDE.
Сегодня еще помучаюсь, хочется понять. Но если результата не будет, то кину. Только, куда не знаю.
Andrick (2004-06-23 16:35:00) [9]В общем, лучше кинь. Вдруг да помогу. К тому же, если честно, люблю копаться в чужих программах - ежли автор позволяет.
Кстати, о подключении к MySQL через BDE. У тебя получилось? Какую версию MySQL используешь?
Fishka (2004-06-23 15:53:00) [10]Ничего не получается.
К mySQL подключаюсь через BDE. DataBase1.Connected:=True стоит на FormCreate. И все равно неверно работает (ошибка в функции Attrib_rebro (неверно формируется массив Area).
Как только убираю DataBase1.Connected:=True, все нормально.
Так что проблема не в тексте запроса. Сейчас нет никаккого запроса.
Но мне нужны данные из таблиц mySQL. Что делать?
Fishka (2004-06-23 10:56:00) [11]Andrick © (23.06.04 10:35) [85]
Если есть желание - кинь исходник на мыло
Спасибо за предложение, но исходник просто огромный. Мне жаль Вашего времени.
если и при закрытом MySQL те же глюки - да, те же.
А как поменять способ подключения к базе данных mySQL? Кроме Ado, чем можно пользоваться? (К MSSQL не хотелось бы).
Andrick (2004-06-23 10:35:00) [12]Как исключение - однажды встретил рекомендацию в особо критических случаях заключать запрос в двойные кавычки. Но как это в реальности воплотить - не знаю.
Кстати, если и при закрытом MySQL те же глюки, то скорее всего, придется пользоваться чем либо одним - или менять способ подключения к базе данных. Попробуй подцепиться MySQL через ADO, а к MS SQL - через BDE. Если глюк пропал - проблема в ADO, иначе... Если есть желание - кинь исходник на мыло, но сразу предепреждаю - возможно, ответа ждать придется пару дней. Только зазипуй
Fishka (2004-06-23 09:45:00) [13]Все равно глюки:
'SELECT own.* FROM own WHERE (((own.id_own)<0))'#0
'SELECT own.* FROM own WHERE (((own.id_own)<0))'+#0
Мне кажется, уже теплее. Проблема в запросе или в свойствах компонента ADOQuery.
Andrick (2004-06-23 06:31:00) [14]'SELECT * FROM own where id_own<0' + #0
Sandman25 (2004-06-22 17:34:00) [15][81] Fishka (22.06.04 16:32)
У меня не так. Внимательнее смотрим...
Fishka (2004-06-22 16:32:00) [16]Sandman25 © (22.06.04 16:06) [80]
Все равно глюки :
'SELECT * FROM own where id_own<0#0'
'SELECT * FROM own#0 where id_own<0#0'
Sandman25 (2004-06-22 16:06:00) [17][79] Fishka (22.06.04 16:05)
SQL.Add('select ... from table1' #0);
Fishka (2004-06-22 16:05:00) [18]Andrick © (22.06.04 15:56) [78]
Попробуй все-таки поставить нулевой символ. В дельфине с мускулем я без него запросы не составляю -
Непонятно, что и куда поставить? У меня нет опыта работы с mySQL.
Andrick (2004-06-22 15:56:00) [19]Попробуй все-таки поставить нулевой символ. В дельфине с мускулем я без него запросы не составляю.
Ладно, пока. Завтра зайду с утречка - сообщи результат
Fishka (2004-06-22 15:53:00) [20]Andrick © (22.06.04 15:41) [71]
1. Был написан запрос к mySQL - и как результат : программа отработала некорректно. Помучавшись неделю, мною был сделан вывод: дело не в тексте ( кстати отлаженном) запроса к mySQL, а просто в его наличии. И даже неважно, делаю я Open или нет. Естественно, после нахождения причины ошибки я восстановлю текст запроса к таблицам mySQL.
2.Если отключить MsSQL или наоборот поменять Connection (т.е. поставить Connection к MSSQL вместо mySQL), то все нормально.
Конечно, выход есть всегда: например, качнуть данные из mySQL во временную таблицу на MSSQL и не пользоваться запросам к mySQL.
Но мне кажется, что это очень-очень нерационально (мягко говоря).