![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Для авторизации надо использовать 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
|
||||
|
||||
|
Ну раз это строка, может имеет смысл ее так-же в 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
|
|||
|
|||
|
Да, я тоже так сначала подумал, однако это выбивает программу в Access Violation
Как это диагностировать на стороне клиента (т.е. Delphi) для меня загадка |
|
#4
|
|||
|
|||
|
Ну и главный вопрос - как отправить параметр blob?
|
|
#5
|
||||
|
||||
|
неправильно кодируете, надо так:
Код:
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; |