| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > Не хочу читать хелп, а мануал я выбросил нафиг. |
| Автор: =Женек= 12.11.2005, 20:10 |
| Сабж - шутка. На самом деле в инете мало чего есть на эту тему, а в мануале (Поль Дюбуа - MySQL) очень скудно. Как мне загрузить картинку из Image1->Picture в MySQL ? Что через BLOB поля, это я знаю, мне бы поконкретней. Поделитесь парой строк кода.. |
| Автор: =Женек= 12.11.2005, 21:24 |
| нашел что-то - но там есть mysql_real_escape_string которая работает сбуфером типа char. А как мне Image1->Picture перегнать в char? |
| Автор: sadhu 13.11.2005, 13:02 |
| Повнимательнее почитай хэлп по TImage - там есть возможность получить указатель на массив пикселов. Берешь его, копируешь блок памяти в свою переменную (может и без копирования пройдёт, но не гарантирую) и скармливаешь это "эскейп_рил". |
| Автор: =Женек= 13.11.2005, 22:53 |
| Я нашел там интересную штуку - SaveToStream Как мне прочесть из TStream и обработать в mysql_real_escape_string. И еще момент - я так понимаю что в BLOB можно записать что угодно. Так вот надо записать так, чтобы я мог с помощью РНР извлечь нормальную картинку. |
| Автор: _hunter 14.11.2005, 11:52 |
| не знаю через что ты работаеш с базой, но что у TADOQuery что у TIBQuery есть метод CreateBlobStream который создаст поток, в который можно писать SaveToStream-ом |
| Автор: =Женек= 14.11.2005, 13:19 | ||
Нашел я вот такую штуку
Вместо TIBQuery можно использовать компоненты MySQL DAC. ОДнако я пишу на С API, не хочется перестраиваться на эти компоненты. Мне всего-то нужно данные из TStream обработать функцией mysql_real_escape_string. Блин.. что-то я совсем запутался... |
| Автор: _hunter 14.11.2005, 13:25 |
| а что она принимает? можно из буффера ( потока ) строку вытащить... |
| Автор: =Женек= 14.11.2005, 13:28 |
| Я кажется писал - char массив обрабатывается функцией real_escape_string. В массив данные попадают из файла. |
| Автор: _hunter 14.11.2005, 14:06 |
| ну так тю: char* buffer = new char[stream->Size]; stream->Read(buffer, stream->Size); |
| Автор: sergejzr 14.11.2005, 14:19 |
| Модератор: Название темы должно отражать ее суть! |
| Автор: =Женек= 14.11.2005, 14:27 | ||
Я вот так сделал:
Для проверки - картинка из одного TImage копируется в другой. Посредник buffer. ловлю exception Access violation |
| Автор: Vyacheslav 15.11.2005, 17:46 | ||||
То есть хелп читать принципиально не желаем?
Читает Count байтов ИЗ буфера в поток В результате имеем
|
| Автор: =Женек= 15.11.2005, 20:56 |
| Вячеслав, вы правы. Я интуитивно воспринимал смысл функции. Ну согласитесь, что строка Stream2->Read ассоциируется с чтением из буфера и записью в Stream |