Поиск:

Ответ в темуСоздание новой темы Создание опроса
> передать архив в MYSQL, передать из клиента архив в MySQL Server 
:(
    Опции темы
mr_oz
Дата 6.7.2008, 00:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 7.10.2006

Репутация: нет
Всего: нет



Доброй ночи всем) У меня есть удаленный сервер Mysql, где уже есть рабочая БД. Так вот как можно передать с клиента (клиент не взаимодействует с наборами данных из этой БД) архив на сервер в каталог допустим c:\mysql\data\mybd\ ну и конечно чтоб потом можно было бы его от туда по надобности стянуть. 


P.S. Может еще кто подскажет какую нить путевую книгу по написанию компонентов в Delphi.
PM MAIL   Вверх
mr_oz
Дата 8.7.2008, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 7.10.2006

Репутация: нет
Всего: нет



Я тут подумал.... Решил буду добавлять в Blob поле архив....
Подскажите пож. Как добавит и считать через dbExpress. Я нашел примеры, но они не работют....
Использую TSQLConnection, TSimpleDataSet, Provider and Client dataSET
НА удаленном MySQL сервере есть таблица test два поля Index: Char ; arx: Blob;
Например 
Код

 BLOBField: TBlobField; 
  Stream1: TMemoryStream;
  d: Char;
  i: Integer;
  s: string;
........

 Stream1 := TMemoryStream.Create;
          Stream1.Clear;
          Stream1.LoadFromFile('c:\ms2.dat');
          Stream1.Position := 0;
          for i := 1 to Stream1.Size do begin
          Stream1.Read(d, 1);
          s := s + d;
                                          end;
          BlobField.DataSet.Edit; <---- на этом этапе возникает ошибка
          BlobField.AsString := s;
          BlobField.DataSet.Post;
          TSimpleDataSet(BlobField.DataSet).ApplyUpdates(0);
          Stream1.Free;

Ошибка при выполнении кода(записи в blob) : Access violation at adress 00494CA0 in module "Project.exe". Read of address 8400016F.
PM MAIL   Вверх
mr_oz
Дата 8.7.2008, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 7.10.2006

Репутация: нет
Всего: нет



Еще заметил, что в коде например qrProba.FetchBlobs;; и вообще где встречается объект типа TBlobField, или все что с этим связанно происходит эта ошибка.
Свойство FetchonDeman =true;
ни как не пойму в чем ошибка....  smile 
PM MAIL   Вверх
mr_oz
Дата 8.7.2008, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 7.10.2006

Репутация: нет
Всего: нет



Решил обойти проблему с FetchBlob'ом... Получился код:

Код

   Stream1: TMemoryStream;
   Stream3: TStream;
 with ClientDataSet2 do begin
      Open;
      Insert;
      Stream1 := TMemoryStream.Create;
      Stream1.LoadFromFile('c:\ms2.dat');
      FieldByName('Id').AsInteger := 1;
      Stream3 := ClientDataSet2.CreateBlobStream(ClientDataSet2.FieldByName('arx'), bmReadWrite);
      Stream3.CopyFrom(Stream1, Stream1.Size);
      Post;
      Stream3.Free;
      Stream1.Free;
      ApplyUpdates(0);<---- error      end;


 В последней строке возникает ошибка "commands out of sync you can't run this command now", как я понял она говорит что набор данных не свободен типо изначально в SQLQuery при запуске уже был запрос "select * from test" и этот набор нужно выгрузить... 

Столько людей уже просмотрело эту тему... неужели ни кто с ней не боролся.... 
PM MAIL   Вверх
mr_oz
Дата 9.7.2008, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 7.10.2006

Репутация: нет
Всего: нет



Раз ни кто не хочет говорить со мной по теме.... Буду говорить сам с собой(Докатился)  smile  Так вот.. Добавление
В решении ошибки можно продвинуться чуть дальше

перед ApplyUpdates(0);
Можно вставить 
SQLConnection1.Connected:=false;
SQLConnection1.Connected:=true;
И значение 0 заменить на -1(то есть 0 реакции на ошибки). Выдается ошибка со стороны сервера  в виде типа:  Двойние изменение 'ттт' для ключа иии
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0773 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.