Смастерил мне MySQL view по следующему коду:
- Код: Выделить всё
CREATE ALGORITHM=UNDEFINED DEFINER="shopadmin"@"%"
SQL SECURITY DEFINER VIEW "viewtovars" AS
select
"t"."TID" AS "TID",
"t"."SHTCODE" AS "BarCode",
"t"."ART" AS "Art",
"t"."TName" AS "TName",
"t"."CID" AS "CID",
"t"."MID" AS "MID",
"t"."PID" AS "PID",
"t"."KID" AS "KID",
ifnull("p"."NewPrice",0) AS "NewPrice",
ifnull("p"."Nacenka",0) AS "Nacenka",
ifnull(("p"."NewPrice" * (1 + ("p"."Nacenka" / 100))),0) AS "EndPrice",
ifnull("p"."Skidka",0) AS "Skidka"
from
("tbltovars" "T"
left join "tblprices" "P" on (("t"."TID" = "p"."TID")))
Суть в том что view компонует две таблицы, в MySQL Query Browser все работает т.е. запрос:
- Код: Выделить всё
Select * from `Shop`.`viewtovars`;
выдает мне именно то, что я хотел.
Но когда я сделал
- Код: Выделить всё
SQLStr = "SELECT * FROM `Shop`.`viewtovars`;"
Set RS = CN.Execute(SQLStr)
If Not RS.EOF Then
...
End if
Получил ... отказ, т.е. выполнилось и ничего не озвратилось.
Строка соединения такая:
- Код: Выделить всё
Provider=MSDASQL.1;Persist Security Info=False;User ID=shopadmin;Extended Properties="DATABASE=shop;DRIVER={MySQL ODBC 3.51 Driver};OPTION=0;PORT=0;SERVER=localhost;STMT=SET CHARACTER SET cp1251;UID=shopadmin"
Пробовал зайти под "root" та же ситуация.
Помогите, ведь наверняка все просто.
Хотя, как посмотреть.
Заранее благодарен за ответ.
С Уважением,
Сергей