Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 06.12.2010, 16:48
Croozy Croozy вне форума
Прохожий
 
Регистрация: 06.12.2010
Сообщения: 3
Репутация: 10
По умолчанию Вопрос про blob поле и mysql

Для авторизации надо использовать AES

Использую шифрацию - получаю на выходе string.

Далее надо string засунуть в blob поле в базе данных mysql

В базе данных mysql есть процедура внесения данных, которая напрямую отправляет данные в поле.

Использую код


myscript1.SQL.Text:='SELECT CreateUser('+QuotedStr(edit10.text)+','+QuotedStr( edit11.Text)+','+QuotedStr(edit9.Text)+','+
QuotedStr(inttostr(combobox1.ItemIndex))+','+Quote dStr(edit5.Text)+','+mycode+','+ QuotedStr('1')+')';
MyScript1.Execute;


где mycode - переменная типа string с уже закодированным с помощью AES кодом

Вылетает ошибка несовместимости типов данных.

Как мне в Delphi создать поле blob, которое поймет mysql и нормально пройдет через запрос?


Компоненты:
mydac 5.80
delphi2010
mysql 5.1

Спасибо.
Ответить с цитированием
  #2  
Старый 06.12.2010, 17:22
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Ну раз это строка, может имеет смысл ее так-же в QuotedStr заключить?
Код:
myscript1.SQL.Text:='SELECT CreateUser('+QuotedStr(edit10.text)+','+QuotedStr( edit11.Text)+','+QuotedStr(edit9.Text)+','+
QuotedStr(inttostr(combobox1.ItemIndex))+','+QuotedStr(edit5.Text)+','+QuotedStr(mycode)+','+ QuotedStr('1')+')';
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #3  
Старый 07.12.2010, 11:50
Croozy Croozy вне форума
Прохожий
 
Регистрация: 06.12.2010
Сообщения: 3
Репутация: 10
По умолчанию

Да, я тоже так сначала подумал, однако это выбивает программу в Access Violation

Как это диагностировать на стороне клиента (т.е. Delphi) для меня загадка
Ответить с цитированием
  #4  
Старый 07.12.2010, 12:14
Croozy Croozy вне форума
Прохожий
 
Регистрация: 06.12.2010
Сообщения: 3
Репутация: 10
По умолчанию

Ну и главный вопрос - как отправить параметр blob?
Ответить с цитированием
  #5  
Старый 12.12.2010, 19:57
Аватар для MMM_Corp
MMM_Corp MMM_Corp вне форума
Прохожий
 
Регистрация: 12.12.2010
Сообщения: 37
Репутация: 13
По умолчанию

неправильно кодируете, надо так:

Код:
procedure TForm1.btnCreateQueryClick(Sender: TObject);
var
  MimeCoder: TStringFormat_MIME64;
  S: TMemoryStream;
begin
  if dlgOpen.Execute then
  begin
    MimeCoder := TStringFormat_MIME64.Create;
    S := TMemoryStream.Create;
    S.LoadFromFile(dlgOpen.FileName);
    try
      memQuery.Lines.Text := 'INSERT INTO Images (FilePath, Image) ' + #10 + 'VALUES (''' +
        dlgOpen.FileName + ''', ' + #10 +
        'MimeToBin(''' + MimeCoder.StrTo(S.Memory, S.Size) + '''))';
      btnExecuteQuery.Enabled := True;
    finally
      MimeCoder.Free;
      S.Free;
    end;
  end;
end;
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 14:23.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter