• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Как получить файл?

Автор Jeff_Greg, 21.07.11, 11:36:49

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Jeff_Greg

Здравствуйте, знатоки.
Не могу получить файл из базы...

использую своего клиента (организация ГУПТИ МО, дипломная работа)
подключение:

procedure ConnectLoc(IP : AnsiString; Port : integer);
begin
  try
   SocketConnectLoc := TSocketConnection.Create(nil);
   SocketConnectLoc.Address := IP;
   SocketConnectLoc.Port := Port;
   SocketConnectLoc.ServerName := 'LoodsmanServerApplication.MainSystem';
   SocketConnectLoc.Connected := True;
   _QConnect := True;
  except
   showmessage('Ошибка подключения к серверу!');
   _QConnect := False;
   ConnLocFrm.ModalResult := mrCancel;
  end;
end;

все ок

procedure  ConnectUserLoc(DBName, USR, LGN  : String);
var
  err, msg  : Variant;
begin
   SocketConnectLoc.AppServer.ConnectToDBEx(DBName, USR, LGN, err, msg);
   _QConnect := True;
   if err <> 0 then begin
     ShowMessage('Неверное имя пользователя или пароль!')
   end else
     Showmessage('Подключение успешно!')
end;

все ок

procedure CopyFileFromLoc(ID : longint; path : string);
var
  vaErrCode, vaErrStr  : Variant;
  cdTemp, cdTemp1      : TClientDataSet;
  sssttt:string;
begin
  cdTemp := TClientDataSet.Create(nil);
  cdTemp.Data := SocketConnectLoc.AppServer.GetInfoAboutVersion(
          '','','',ID ,7, vaErrCode, vaErrStr);
  cdTemp.First;
   while not cdTemp.Eof do
     begin
      cdTemp1 := TClientDataSet.Create(nil);
      sssttt := SocketConnectLoc.AppServer.GetFileById(
          cdTemp.FieldByName('_ID_FILE').AsInteger,
          cdTemp.FieldByName('_NAME').AsString,
          cdTemp.FieldByName('_LOCALNAME').AsString,
          vaErrCode, vaErrStr);
      cdTemp.Next;
     end;
  cdTemp.Free;
end;

вот тут:
ID_FILE - код получаю;
_NAME - имя файла получаю
_LOCALNAME - пусто... :~

соотв. GetFileById - "не удается найти указанный файл"

куда копать? или это проблемы со string в delphi xe? (в пред. версиях string был просто string, в этой он widestring)
Лоцман 8, delphi xe

Chaa

Все нормально с _LOCALNAME.
В GetFileById передается идентификатор версии, а не файла.
sssttt := SocketConnectLoc.AppServer.GetFileById(
    ID,
    cdTemp.FieldByName('_NAME'),
    cdTemp.FieldByName('_LOCALNAME'),
    vaErrCode, vaErrStr);
+ Благодарностей: 1

Jeff_Greg

Спасибо большое, mea culpa, неправильно читал Лоцман API ::)