Delphi X10.2 + FireDAC 使用 SQL 语句 INSERT

// CREATE TABLE [tabusers](
// [id] INTEGER PRIMARY KEY AUTOINCREMENT,
// [username] CHAR NOT NULL,
// [userpwd] CHAR NOT NULL,
// [usernickname] CHAR,
// [useroffice] CHAR,
// [userprofiles] BLOB,
// [regdatetime] DATETIME,
// [userpermission] CHAR,
// [useronline] BOOLEAN,
// [usertablename] CHAR);

MainForm.Conn.StartTransaction;
UserManagerQuery.SQL.Clear;
UserManagerQuery.SQL.Text := ‘INSERT INTO tabusers(‘ + //
          ‘username, userpwd, usernickname, useroffice, userprofiles, regdatetime, userpermission, useronline, usertablename)‘
          + //
          ‘ VALUES (:username, :userpwd, :usernickname, :useroffice, :userprofiles, :regdatetime, :userpermission, :useronline, :usertablename)‘;

        UserManagerQuery.Params[0].AsString := edtUserName.Text;
        if Using_Default_Pwd then
          UserManagerQuery.Params[1].AsString := Default_Password
        else
          UserManagerQuery.Params[1].AsString :=
            MD5Print(MD5StringA(AnsiString(edtUserPwd.Text)));
        UserManagerQuery.Params[2].AsString := edtUserNickName.Text;
        UserManagerQuery.Params[3].AsString := edtUserOffice.Text;

        MS := TMemoryStream.Create;
        ImgUserProfiles.Picture.SaveToStream(MS);
        MS.Position := 0;
        UserManagerQuery.Params[4].LoadFromStream(MS, ftBlob);
        MS.Free;

        UserManagerQuery.Params[5].AsDateTime := Now;
        UserManagerQuery.Params[6].AsString   := edtUserPermission.Text;
        UserManagerQuery.Params[7].AsBoolean  := False;

        User_Count    := UserListBox.Items.Count;
        New_user_Name := ‘tab_user‘ + Format(‘%.3d‘, [User_Count]);;
        UserManagerQuery.Params[8].AsString := New_user_Name;

        UserManagerQuery.ExecSQL;
        MainForm.Conn.Commit;

        UserListBox.Items.Add(edtUserName.Text);

        try
          // CREATE TABLE "tab_user001"(
          // [ID] INTEGER PRIMARY KEY AUTOINCREMENT,
          // [aDate] DATE NOT NULL,
          // [aComments] CHAR,
          // [aProgress] CHAR,
          // [aNote01] CHAR,
          // [aNote02] CHAR);

          UserManagerQuery.SQL.Clear;
          strSQL := ‘CREATE TABLE ‘ + New_user_Name + ‘ (‘ +
            ‘[ID] INTEGER PRIMARY KEY AUTOINCREMENT,‘ + ‘[aDate] DATE NOT NULL,‘
            + ‘[aComments] CHAR,‘ + ‘[aProgress] CHAR,‘ + ‘[aNote01] CHAR,‘ +
            ‘[aNote02] CHAR)‘;
          UserManagerQuery.Command.Prepare(strSQL);//注意这里不能用 ExecSQL / Open() / OpenOrExecute 这类东东
          UserManagerQuery.Execute();

        except
          on E: Exception do
          begin
            ShowMessage(E.Message);
          end;
        end;

  

时间: 2024-10-27 07:50:37

Delphi X10.2 + FireDAC 使用 SQL 语句 INSERT的相关文章

Delphi X10.2 + FireDAC 使用 SQL 语句 UPDATE

MainForm.Conn.StartTransaction; UserManagerQuery.SQL.Clear; UserManagerQuery.SQL.Text := 'UPDATE tabusers SET ' + // 'username=:username, userpwd=:userpwd, usernickname=:usernickname, ' + 'useroffice=:useroffice, userprofiles=:userprofiles, ' + 'user

Delphi ADOQuery处理多条SQL语句

Delphi(Pascal) code var   sqlStr:String;begin  sqlStr:= ' begin '  sqlStr:= sqlStr+ 'update table1 set col1 = ''test'' where 1=2;';  sqlStr:= sqlStr+ 'update table1 set col1 = ''test2'' where 1=2;';  sqlStr:= sqlStr+ ' end '; adoquery1.Close;   adoqu

SQL Server下ADO.NET 怎么获取数据库SQL语句INSERT,UPDATE,DELETE了多少行数据

ADO.NET 在发送SQL语句到SQL Server数据库后,怎么知道真正INSERT,UPDATE,DELETE了多少行数据呢? 使用SQL Server内置的全局变量@@ROWCOUNT即可,@@ROWCOUNT可以返回在当前数据库连接(SqlConnection)中,执行的上一条SQL语句影响了多少行数据,使用示例如下所示: INSERT INTO [dbo].[Person]([PersonCode],[Name],[Age],[City]) VALUES (N'P8000',N'He

SQL语句 insert into 语句的写法

方式1: INSERT INTO t1(field1,field2) VALUE('001','002'); 最好的做法明确插入的每一列,列于查错,而且漏列的几率会降低! 方式2: INSERT INTO t1 (field1,field2) values ('001','002'),('003','004')......; 能够批量插入数据最好批量插入,但是数据过于庞大时,最好分批次批量插入! 方式3:  INSERT INTO t2 (field1,field2) SELECT col1,c

SQL Server之 (二) SQL语句 模糊查询 空值处理 聚合函数

(二) SQL语句  模糊查询  空值处理  聚合函数 自己学习笔记,转载请注明出处,谢谢!---酸菜 SQL :结构化查询语言(Structured Query Language),关系数据库管理系统的标准语言. Sybase与Mircosoft对标准SQL做了扩展:T-SQL (Transact-SQL); 注:①SQL对大小写的敏感取决于排序规则,一般不敏感; ②SQL对单引号的转义,用两个单引号来表示一个单引号; ③SQL执行顺序: 1→2→3→4 select  * ---------

数据库-转换sql语句

文章描述:主要说明转换成SQL语句的过程.----必要信息(数据库名,表名,条件)转换成SQL语句 一些界面上数据增删改查的操作往往只需要输入一数据库名,表名,加条件就可以进行数据查询了,在这背后是怎么实现了呢,这些程序有些是使用封装的方法,有些直接输入sql语句进行操作,封装的方法最后也是将查询条件(上面输入操作)转换为SQL语句用Statement对象对应方法进行相关操作 而Statement对象获得SQL语句后怎么执行查询(这个不归statement管了),Statement这里是通过jd

MSSQL数据库导入导出大全二(SQL语句)

Excel文件导入数据库多个Sheet if exists(select 1 from sysobjects where name=N'p_import_excel' and type='P')drop proc p_import_excelgo--调用示例exec p_import_excel 'c:\123.xls','Sheet1;Sheet2;Sheet3','tbl'create proc p_import_excel@excfilename nvarchar(100),--文件路径@

偏于SQL语句的 sqlAlchemy 增删改查操作

ORM 江湖 曾几何时,程序员因为惧怕SQL而在开发的时候小心翼翼的写着sql,心中总是少不了恐慌,万一不小心sql语句出错,搞坏了数据库怎么办?又或者为了获取一些数据,什么内外左右连接,函数存储过程等等.毫无疑问,不搞懂这些,怎么都觉得变扭,说不定某天就跳进了坑里,叫天天不应,喊地地不答. ORM 的出现,让畏惧SQL的开发者,在坑里看见了爬出去的绳索,仿佛天空并不是那么黑暗,至少再暗,我们也有了眼睛.顾名思义,ORM 对象关系映射,简而言之,就是把数据库的一个个table(表),映射为编程语

SQL语句导入导出大全

--导出到excel EXEC master..xp_cmdshell 'bcp SettleDB.dbo.shanghu out c:\temp1.xls -c -q -S"GNETDATA/GNETDATA" -U"sa" -P""' --导入Excel SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\test.xls";U