ADODatabase1.DatabaseName

отредактировано 06:42 Раздел: FastReport Studio
делаю так в скрипте


ADODatabase1.Connected := false
ADODatabase1.DatabaseName := 'dsdfdsaf';
ADODatabase1.Connected := True;


присвоение к свойству ADODatabase1.DatabaseName не всегда проходит и остаёться предыдущее значение этого свойства..


в чём дело??

Комментарии

  • gpigpi
    отредактировано 06:42
    В какой части скрипта выполняется присвоение?
    DatabaseName должно быть такого вида
    Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Мои документы\db1.mdb;Persist Security Info=False
  • отредактировано 06:42
    это понятно...

    а выполняю на событии..


    procedure Page1OnBeforePrint(Sender: TfrxComponent);
    begin
    MAsterData1.DataSet := nil;

    ADODatabase1.Connected := False;
    ADODatabase1.DatabaseName := ConnString;
    ADODatabase1.Connected := True;

    AdoQuery1.Database := ADODatabase1;
    AdoQuery1.Open;

    MAsterData1.DataSet := AdoQuery1;


    end;


    ConnString создаёться в программе и регистрируется в скрипте.
  • gpigpi
    отредактировано 06:42
    Попробуйте перенести код в главную процедуру скрипта отчёта
  • отредактировано 06:42
    хмм... интересный эффект..

    1. не заработало.
    2. Стало появлятся сообсщение Unregistered version of FastScript при запуске отчёта.
  • gpigpi
    отредактировано April 2006
    Специально проверил - в главной процедуре работает FR Studio 3.19
  • отредактировано 06:42
    ошибка по моему заключаеться в том когда заполняеш это свойство значением
    AdoDAtabase1.DatabaseName := '' ;

    это присвоение не работает.

  • отредактировано 06:42
    по ходу я понял суть проблемы, а суть такова:

    когда делаю
    FastReport.AddVariable("еее", "ConnString", Connection.ConnectionString);

    то при след открытии приложения у отчёта этот ConnString уже есть..
    (проверил закоментировав эту строку, отчёт всё равно открылся.)

    в смысле он где то зависает в памяти и сидит там, возможно это связано с COM объектами.
  • отредактировано 06:42
    ответьте хоть что нибудь, уж сильно надо..
  • отредактировано 06:42
    да на самом деле и AddVariable как то вяло работает..

  • gpigpi
    отредактировано 06:42
    Попробуйте использовать скриптовую переменную
    FastReport.Script.Variables:=Connection.ConnectionString;
    Не знаю, получится ли в FR Studio, я в основном работаю с FR
  • almanalman космополит
    отредактировано 06:42
    igrik написал:
    в смысле он где то зависает в памяти и сидит там, возможно это связано с COM объектами.
    Возможно что ConnString сохраняется в отчёте, т.е. в fr3 файле.
  • отредактировано 06:42
    и что тогда делать??
    я же в коде всегда присваиваю новый..
  • LexXPLexXP Новокузнецк
    отредактировано 06:42
    А ты перед тем как добавить новый, попробуй найти старый. Если нашел пиши в него, если нет создавай новый.
    Примерно так:
      i:=frxReport1.Variables.IndexOf('ConnString');
      if i <> -1 then
        frxReport1.Variables.Items[i]:=Connection.ConnectionString
      else
      frxReport1.Variables.AddVariable('eee', 'ConnString', Connection.ConnectionString);
    
    хотя и вариант
    frxReport1.Variables['ConnString']:=Connection.ConnectionString;
    
    тоже должен нормально сработать.

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.