首页 > 数据库 >Lazarus中对mysql数据库Blob类型进行读写例子

Lazarus中对mysql数据库Blob类型进行读写例子

时间:2024-09-27 19:23:03浏览次数:1  
标签:tzm psin tp SQLQuery1 Form1 Lazarus Blob mysql TPStream

一、读一个图片到数据库

var

inimage1:TImage;
TPStream:TMemoryStream;

 

inimage1 := TImage.Create(nil);
//读取图片
TPStream := TMemoryStream.Create;
Image1.Picture.SaveToStreamWithFileExt(TPStream, 'jpg');//生成jpeg图片
inimage1.Free;
TPStream.Position := 0;
sqlst := format('UPDATE userinfo SET tp=:tp WHERE id=%d',[userid]);
Form1.SQLQuery1.Close;
Form1.SQLQuery1.SQL.Text := sqlst;
Form1.SQLQuery1.ParamByName('tp').SetBlobData(TPStream.Memory,TPStream.Size); 
Form1.SQLQuery1.ExecSQL;
TPStream.Free;

二、从数据库中得到图片数据

TPStream:=TMemoryStream.Create;
TPStream.Write(Form1.SQLQuery1.FieldByName('tp').AsBytes,Length(Form1.SQLQuery1.FieldByName('tp').AsBytes));
TPStream.Position:=0;
Image1.Picture.LoadFromStream(TPStream);
TPStream.Free;

三、写一个浮点数据到数据库

var

psin:PSingle;

fcLen:integer;

 

 psin:= GetMem(fcLen * SizeOf(single));

//写浮点数据值

sqlst := format(
'UPDATE userinfo SET tzm=:tzm WHERE id=%d',
[userid]);
Form1.SQLQuery1.Close;
Form1.SQLQuery1.SQL.Text := sqlst;
Form1.SQLQuery1.ParamByName('tzm').SetBlobData(psin, fcLen * SizeOf(single));
Form1.SQLQuery1.ExecSQL;
FreeMemAndNil(psin);

四、从数据库中读取浮点数

TZMStream:=TMemoryStream.Create;
lenp:=Length(Form1.SQLQuery1.FieldByName('tzm').AsBytes);
psin:=GetMem(lenp);
Move(Form1.SQLQuery1.FieldByName('tzm').AsBytes[0],psin^,lenp); 
FreeMemAndNil(psin);

标签:tzm,psin,tp,SQLQuery1,Form1,Lazarus,Blob,mysql,TPStream
From: https://www.cnblogs.com/jwjss/p/18436417

相关文章

  • windows环境下的 MySQL 安装与启动
    参考网址:菜鸟教程:https://www.runoob.com/mysql/mysql-install.html报错博文:https://blog.csdn.net/weixin_72700368/article/details/139784696 1. 下载MySQLWindows上安装MySQL相对来说会较为简单,最新版本可以在 MySQL下载 中下载中查看(更详细安装:Win......
  • Mysql8.0启动时出现ERROR: Different lower_case_table_names settings for server ('
    分析:出现这个原因数据库启动后,调整lower_case_table_names参数导致的这个问题。mysql8.0之后,lower_case_table_names配置必须在安装好MySQL后,初始化mysql配置时才有效。一旦mysql启动后,再设置是无效的,而且启动报错。lower_case_table_names=1表示mysql是不区分大小写的......
  • Mysql-常用命令
    库操作:1.创建数据库:createdatabase库名;2.显示数据库:showdatabases;3.删除数据库:dropdatabase库名;4.修改数据库编码:alterdatabase库名charactersetgb2312表操作:1.创建一个表名为:employee,该表中含有id、name、sex、birthday、job字段:createtableemployee(表名)(id......
  • MySQL 表的CRUD与复合查询
    目录表的增删改查Create指定列插入单行数据+全列插入多行数据+全列插入插入否则更新替换(replace)Retrieve标准语法SELECT列全列查询限制显示条目limit(分页查询)基本语法:指定列查询select查询字段为表达式表达式重命名去重WHERE条件比较运算符逻辑运算符案例:结果排序Orde......
  • MySQL 8.0 为 Java 开发者提供了许多强大的新特性
    以下是一些关键点:1.通用表表达式(CTE):CTE允许您定义命名的临时结果集,这些结果集可以在后续的SELECT、INSERT、UPDATE、DELETE或CREATEVIEW语句中被引用。这对于编写复杂查询特别有用。WITHRECURSIVEemployee_hierarchyAS(SELECTid,name,manager_id,1ASlevelF......
  • mysql安装
    编译安装cmake..-DCMAKE_INSTALL_PREFIX=/usr/local/mysql\-DMYSQL_DATADIR=/opt/data\-DMYSQL_UNIX_ADDR=/usr/local/mysql/tmp/mysql.sock\-DWITH_BOOST=/opt/mysql-5.7.40/boost/boost_1_59_0\-DDEFAULT_CHARSET=utf8\-DDEFAULT_COLLATION=utf8_general_ci\-DWIT......
  • python爬虫案例——抓取三级跳转网页,实现逐页抓取,数据存入mysql数据库(10)
    文章目录1、目标任务2、网页分析3、完整代码1、目标任务目标站点:情话网(http://www.ainicr.cn/tab/)任务:抓取该网站下所有标签下的所有情话语句,并将其存入mysql数据库2、网页分析用浏览器打开网页,按F12或右键检查,进入开发者模式,在Network-Doc下找到网页的数......
  • 科普文:软件架构数据库系列之【MySQL数据库SQL命令和SQL标准梳理】
    概叙结构化查询语言(StructuredQueryLanguage)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。​SQL是用于访问和处理数据库的标准的计算机语言。SQL历史HistoryofSQL​SQL语言1974年由Boyce和Chamb......
  • MySQL窗口函数汇总
    1.窗口函数概述窗口函数是一种SQL函数,非常适合于数据分析,其最大的特点就是:输入值是从SELECT语句的结果集中的一行或者多行的"窗口"中获取的,也可以理解为窗口有大有小(行数有多有少)。通过OVER子句,窗口函数与其他的SQL函数有所区别,如果函数具有OVER子句,则它是窗口函数。如果它缺少了O......
  • MySQL零基础入门教程-8.1 表的连接\增删数据、表结构的增删改、字段约束(非空、唯一
    教程来源:B站视频BV1Vy4y1z7EX001-数据库概述_哔哩哔哩_bilibili我听课收集整理的课程的完整笔记,供大家学习交流下载:夸克网盘分享本文内容为完整笔记的第八篇的第一部分1、表怎么进行连接的P77-P1431、表怎么进行连接的从emp表中取ename,从dept表中取dname,没有条件限制最终查询结果是......