![]() |
| ||
|
|
Новости |
Поиск |
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 - и все нормально.
Наверно, мало информации, но все же в чем проблема и как с этим бороться?
Andrick (2004-06-22 15:49:00) [21]Комп конкретно глючит. А собака, скорее всего, порылась в том, что дельфин, прежде чем отправить запрос базе, всячески его мнет и коряжит, чтоб, значит, он лучше был. Попробуй поставить самым последним символом запроса #0 - мне помогло
Sandman25 (2004-06-22 15:48:00) [22][73] Fishka (22.06.04 15:45)
Я понимаю, ну а что еще можно придумать... Закрывайте неиспользуемый Connection, тем более, что это разумно.
Andrick (2004-06-22 15:45:00) [23]Ладно, мужики, пошел я от вас. Завтра загляну - посмотрю, как дела
Fishka (2004-06-22 15:45:00) [24]Fishka (22.06.04 15:24) [69]
Немного не так. И при закрытом mySQL те же глюки. Даже если не делать Open, то те же глюки.
Но если просто закомментировать строку:
ADQ_my.SQL.Add('SELECT * FROM own where id_own<0');
то все нормально.
Sandman25 © (22.06.04 15:24) [70]
Мне не совсем понятно, ведь фактически я ничего не ищу..... И результатом запроса не пользуюсь......
Andrick (2004-06-22 15:45:00) [25]Ладно, мужики, пошел я от вас. Завтра загляну - посмотрю, как дела
Andrick (2004-06-22 15:41:00) [26]Во-первых, если ты не используешь результаты запросов MySQL - на хрена пользоваться MySQL?
Во-вторых, проверь, возникает ли ошибка, если отключить Ms SQL. Если возникает, то дело совсем не в бобине.
To Sandman25 > Я не обижаюсь.
Sandman25 (2004-06-22 15:24:00) [27]>Есть поиск, нет его - все равно глюки одни и те же.
Допустим, по алгоритму происходит запись '1', если поле найдено в таблице. Тогда в случае использования MSSQL запись будет найдена и 1 добавится, а в случае использования MySQL запись не будет найдена и поэтому 1 не добавится. При этом не важно, был ли выполнен запрос в MySQL.
Fishka (2004-06-22 15:24:00) [28]Andrick © (22.06.04 15:07) [64]
ошибка происходит при одновременно открытых и MS SQL, и MySQL - да, есть такой момент.
И что мне делать? Закрывать? А почему?
Sandman25 (2004-06-22 15:20:00) [29][67] Andrick © (22.06.04 15:15)
И это правильно.
Извините за неудачную шутку.
Andrick (2004-06-22 15:15:00) [30]Sandman25 © (22.06.04 15:10) [65]
Предпочитаю программирование
Fishka (2004-06-22 15:11:00) [31]Andrick © (22.06.04 14:58) [61]
А я и не использую результат запроса.
Sandman25 © (22.06.04 15:03) [63]
Если при формировании "массива" используются результаты запроса через другое соединение, то массив получится другой. Вы же не зря нам писали про "поиск" в MySQL... Или зря? - Есть поиск, нет его - все равно глюки одни и те же.
Попробуйте указать ADM на MSSQL, но в другую БД, и сравните результаты - о результате сообщу через 5-10 мин.
Sandman25 (2004-06-22 15:10:00) [32][64] Andrick © (22.06.04 15:07)
Какой еще песочный... Изучайте американский фольклор, молодой человек :)
PS. Я же не называю Вас "и стог" :)
Andrick (2004-06-22 15:07:00) [33]Кстати, ошибка происходит при одновременно открытых и MS SQL, и MySQL, - или нет? Если при одновременно, то Песочный (привет ;))) прав
Sandman25 (2004-06-22 15:03:00) [34][62] Fishka (22.06.04 15:01)
Если при формировании "массива" используются результаты запроса через другое соединение, то массив получится другой. Вы же не зря нам писали про "поиск" в MySQL... Или зря?
Попробуйте указать ADM на MSSQL, но в другую БД, и сравните результаты
Fishka (2004-06-22 15:01:00) [35]Sandman25 © (22.06.04 14:55) [60]
Если используется MSSQL, а не MySQL, то ADM указывает на ту же БД, что и ADQ, в которой идет транзакция - да.
Возможно, дело в том, что MSSQL "видит" транзакцию, которую не видит MySQL - а при чем тут неверное формирование массива Area, из-за которого мои проблемы?????????
Andrick (2004-06-22 14:58:00) [36]Не знаю насчет MS SQL, а вот MySQL возвращает в ответ на запрос массив из PChar, а уж никак не String (насколько я понял из всего написанного)
Sandman25 (2004-06-22 14:55:00) [37]Если используется MSSQL, а не MySQL, то ADM указывает на ту же БД, что и ADQ, в которой идет транзакция? Возможно, дело в том, что MSSQL "видит" транзакцию, которую не видит MySQL.
Fishka (2004-06-22 14:49:00) [38]А и поиск поиск не нужен. Простейший запрос к mySQL, и неверно определяется массив Area.
Дело не в запросе,
а см. См. Fishka (22.06.04 09:06) [12] и
3. Неверны свойства ADOQuery (ADQ_my), а именно ...
У меня нет опыта работы с mySQL.
Fishka (2004-06-22 14:45:00) [39]
function TForm1.Koef_abc(tt1,tt2 : tochka; var a,b,c : Real): Boolean;
begin
if (tt2.sh=tt1.sh) and (tt2.dl=tt1.dl) then
begin
result:=False;
exit;
end;
// if (tt2.shtt1.sh) then
if (abs(tt2.sh-tt1.sh)>0.0001) then
begin
// if (tt2.dltt1.dl) then
if (abs(tt2.dl-tt1.dl)>0.001) then
begin
try
a:=0-1/(tt2.dl-tt1.dl);
b:=1/(tt2.sh-tt1.sh);
c:=tt1.dl/(tt2.dl-tt1.dl)-tt1.sh/(tt2.sh-tt1.sh);
except
ShowMessage(FloatToStr(a));
end;
end
else
begin
a:=1;
b:=0;
c:=0-tt1.dl;
end;
end
else
begin
a:=0;
b:=1;
c:=0-tt1.sh;
end;
result:=True;
end;
function TForm1.Midd_r(tt,tt1,tt2 : tochka; var tt_mid:tochka; var a_m,b_m,c_m : Real): Boolean;
begin
//íàéäåì êîîðäèíàòû ñåðåäèíû ðåáðà
tt_mid.sh:=(tt1.sh+tt2.sh)/2;
tt_mid.dl:=(tt1.dl+tt2.dl)/2;
//1-ÿ òî÷êà - ïðîâåðÿåìàÿ, 2-ÿ òî÷êà - ñåðåäèíà ðåáðà - èùåì êîýôô. â óð-íèè ïðÿìîé
if Koef_abc(tt,tt_mid,a_m,b_m,c_m)=False then result:=False;
end;
И чем это все может помочь???????????????
bushmen (2004-06-22 14:45:00) [40]>для некоторых записей, для которых был поиск в таблице mySQL неверно количество Area.Count
Что-то я не вижу поиска в базе mysql