powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Не работает подключение к базе через ADO.Command
25 сообщений из 62, страница 1 из 3
Не работает подключение к базе через ADO.Command
    #39107455
JuniorSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день,
Извините за ранее может за глупый вопрос. Но никак не получается самому разобраться. :(
На компьютер установил FB 1.5 и ODBC драйвер.

Есть вот такой код:

$ConnectString = "DRIVER=Firebird/InterBase(r) driver; UID=SYSDBA; PWD=electro; DBNAME=" & $fDataBase
$adoConnect= ObjCreate("ADODB.Connection")
$adoCommand= ObjCreate("ADODB.Command")
$adoConnect.ConnectionTimeOut = 15
$adoConnect.CommandTimeout = 30
$adoConnect.Open($ConnectString)
$adoConnect.CursorLocation = 3
$adoCommand.ActiveConnection = $adoConnect

Вроде все нормально, НО почему ? $adoConnect.State = 1, а $adoCommand.State = 0
Из за этого никак не получается выполнить команды в базе...
...
Рейтинг: 0 / 0
Не работает подключение к базе через ADO.Command
    #39107571
DBConstructor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JuniorSQL, может потому, что вы не только никак не проинициализировали объект ADODB.Command, задав такие свойства, как ActiveConnection, CommandText и т.п., но и не выполнили метод Execute, чтобы свойство State приняло какое-либо иное значение, кроме adStateClosed (0).
https://msdn.microsoft.com/en-us/library/ms675022(v=vs.85).aspx
https://msdn.microsoft.com/en-us/library/ms675546(v=vs.85).aspx
...
Рейтинг: 0 / 0
Не работает подключение к базе через ADO.Command
    #39107577
DBConstructor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JuniorSQL, сори, не заметил
Код: sql
1.
$adoCommand.ActiveConnection = $adoConnect


Но в любом случае, объект не знает что он должен делать. Нет SQL запроса.
...
Рейтинг: 0 / 0
Не работает подключение к базе через ADO.Command
    #39107716
JuniorSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
разобрался... мой косяк.

Ув. Гуру, подскажите, есть ли что то на подобие в FB 1.5, как в FB 2.5 "MERGE"

Как переделать лучше всего эту строку под FB 1.5

Код: plsql
1.
2.
MERGE INTO "Coupons" USING "couponsFile" ON SUBSTRING("couponsFile"."code" FROM 1 FOR 12) = "Coupons"."Code"
WHEN MATCHED THEN UPDATE SET "Active" = 0;
...
Рейтинг: 0 / 0
Не работает подключение к базе через ADO.Command
    #39107725
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JuniorSQLКак переделать лучше всего эту строку под FB 1.5
Написать ХП. А в ней
Код: sql
1.
2.
FOR SELECT ... from "couponsFile" DO
   UPDATE "Coupons" ....


Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Не работает подключение к базе через ADO.Command
    #39107728
JuniorSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
простите за мрак, а что такое ХП ?
...
Рейтинг: 0 / 0
Не работает подключение к базе через ADO.Command
    #39107731
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JuniorSQLа что такое ХП ?
Хранимая Процедура.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Не работает подключение к базе через ADO.Command
    #39107817
DBConstructor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JuniorSQL, чую, вам очень нужно вкурить это:
http://www.firebirdsql.org/file/documentation/reference_manuals/Firebird_Language_Reference_RUS.pdf
...
Рейтинг: 0 / 0
Не работает подключение к базе через ADO.Command
    #39107843
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBConstructor,

Чую, что кто-то не научился читать вопрос, прежде чем давать ответ.
Каким боком релизные ноты по 2.5 помогут автору с 1.5?
...
Рейтинг: 0 / 0
Не работает подключение к базе через ADO.Command
    #39107854
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSery,

это не релизноты, а объединённая документация по SQL. Но таки да, немного запутать работающего с 1.5 она может, поскольку сильно больше информации содержит.
...
Рейтинг: 0 / 0
Не работает подключение к базе через ADO.Command
    #39107910
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

Да, это я ошибся, назвав руководство по языку релизными нотами.
Однако, как вытащить оттуда только 1.5 мне слабо представляется.
...
Рейтинг: 0 / 0
Не работает подключение к базе через ADO.Command
    #39107973
DBConstructor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSeryЧую, что кто-то не научился читать вопрос, прежде чем давать ответ.
Каким боком релизные ноты по 2.5 помогут автору с 1.5?
Чую, что кое-кто прекрасно понимает, что LangRef вполне годится для общего ознакомления с Firebird SQL, но таки желает вновь устроить холивар. Или я не прав?
...
Рейтинг: 0 / 0
Не работает подключение к базе через ADO.Command
    #39107978
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда LangRef только начинали писать возник вопрос указывать ли для каждой фичи в какой версии она появилась. Но тогда бы документ превратился в макароны, и в итоге решили отказаться от этого.
...
Рейтинг: 0 / 0
Не работает подключение к базе через ADO.Command
    #39108013
miwaonline
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBConstructorИли я не прав?
Да, неправ, как и всегда.

ТС явно указал что ему надо переделать merge из синтаксиса 2.5 для сервера 1.5, но ты сперва тычешь ему доку от 2.5, а потом снова начинаешь юлить когда тебе указывают на твою ошибку.
...
Рейтинг: 0 / 0
Не работает подключение к базе через ADO.Command
    #39108413
DBConstructor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miwaonlineТС явно указал что ему надо переделать merge из синтаксиса 2.5 для сервера 1.5, но ты сперва тычешь ему доку от 2.5, а потом снова начинаешь юлить когда тебе указывают на твою ошибку.
Если человек вообще не знаком с Firebird SQL, не понимает, что и как делает конкретный MERGE и потому не в состоянии самостоятельно заменить его на SP, что явно указывает на его необходимость хоть в каком-нибудь LangRef по Firebird SQL, то какого рожна ты пихаешь сюда свой абсолютно неуместный ответ на не тебе заданный вопрос?
...
Рейтинг: 0 / 0
Не работает подключение к базе через ADO.Command
    #39108483
JuniorSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
FOR SELECT "couponsFile"."code", "Coupons"."Code"
    FROM "couponsFile", "Coupons"
    WHERE "couponsFile"."code" = "Coupons"."Code"
    DO
      BEGIN
        UPDATE "Coupons"
        SET "Active" = 0
        WHERE "couponsFile"."code" = "Coupons"."Code"
      END*



не получается. :(
...
Рейтинг: 0 / 0
Не работает подключение к базе через ADO.Command
    #39108546
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBConstructor,

Firebird SQL мало чем отличается от любого другого SQL.
Вывод о непонимании работы MERGE автора основан на чём?
Безапелляционные суждения, опять.

Видно же, что автору, скорее всего, просто нужно снести 1.5 и поставить 2.5, а не бросаться изучать PSQL.
Дальнейшая необходимость изучения процедурного языка зависит от неизвестных нам факторов.

Кстати, здесь форум, а не приватный чат, пишет и отвечает кто захочет. Тебя вот тоже ни о чём не спрашивали.
...
Рейтинг: 0 / 0
Не работает подключение к базе через ADO.Command
    #39108551
JuniorSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
WildSery,

при всем уважении, но снести ФБ 1.5 я не могу. =( к сожалению. а знаний не хватает, что бы реализовать подобное на ФБ 1.5 Поэтому пришел сюда.
...
Рейтинг: 0 / 0
Не работает подключение к базе через ADO.Command
    #39108555
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JuniorSQLне получается. :(Прочти ещё, что такое терминатор.
И учти, что постоянное добавление / удаление ХП в базу это не правильный методологически подход.
...
Рейтинг: 0 / 0
Не работает подключение к базе через ADO.Command
    #39108557
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JuniorSQL,

Кроме того, процедура не начинается с FOR SELECT.
Ну и, процедуру сперва нужно создать в базе, а потом её запустить.
...
Рейтинг: 0 / 0
Не работает подключение к базе через ADO.Command
    #39108563
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JuniorSQL,

Или можешь не страдать над новыми конструкциями, применить тебе уже известные:
Код: sql
1.
2.
3.
update "Coupons" c
  set c."Active" = 0
  where exists (select 1 from "couponsFile" f where c."Code" = f."Code")
...
Рейтинг: 0 / 0
Не работает подключение к базе через ADO.Command
    #39108566
JuniorSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
WildSery,
я так и сделал.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
BEGIN
FOR SELECT "couponsFile"."code"
    FROM "couponsFile"
    INTO :TALON
    DO
     UPDATE "Coupons"
        SET "Active" = 0
        WHERE "Coupons"."Code" = :TALON;
      END



Если убрать WHERE "Coupons"."Code" = :TALON; то по идеи всем записям в таблице "Coupons" будет изменено поле Active значение 0, но мне так не нужно, Мне нужно только тем, которые находят в "couponsFile". А с WHERE записи не меняются. =(
...
Рейтинг: 0 / 0
Не работает подключение к базе через ADO.Command
    #39108570
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JuniorSQL,

значит, нет ни одного "Coupons"."Code" = "couponsFile"."code"
...
Рейтинг: 0 / 0
Не работает подключение к базе через ADO.Command
    #39108573
JuniorSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
WildSery,

Есть. это точно.

Таблица Coupons имеет поле Code Char(100), а таблица couponsFile это внешняя таблица и заполнена из текстового файла, и в ней поле code Char(12) может быть из за этого ? Только на TRIM что то ругается.
...
Рейтинг: 0 / 0
Не работает подключение к базе через ADO.Command
    #39108617
DBConstructor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JuniorSQL, вы уже поставили себе IBExpert ( http://www.ibexpert.com/rus/ibe_sfx.exe) для удобства работы с базой? Если нет - рекомендую!

Вы, случайно, не забыли про SUBSTRING ?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
SET TERM ^;
CREATE PROCEDURE TALON_UPDATE ()
AS
  DECLARE VARIABLE TALON CHAR(12) DEFAULT NULL;
BEGIN
  FOR
      SELECT SUBSTRING("couponsFile"."code" FROM 1 FOR 12)
        FROM "couponsFile"
        INTO :TALON
    DO
      UPDATE "Coupons"
        SET "Active" = 0
        WHERE "Coupons"."Code" = :TALON;
END^
SET TERM ;^
COMMIT WORK;

/*
--= TEST =--
EXECUTE PROCEDURE TALON_UPDATE;
*/
...
Рейтинг: 0 / 0
25 сообщений из 62, страница 1 из 3
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Не работает подключение к базе через ADO.Command
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]