FAQ > 金融建模 > 第三方交互 > 数据库

Q:如何一次性插入多条记录到数据库中    

  • A:
        使用Execsql的方法,客户需花费大量的时间在拼接字符串的工作上,资源和时间都不允许,本身效率也不高,可参考使用下面的方法,参考范例如下:
        现有数据库:test,表:calendar
        表的创建脚本如下:

        USE [test]
        GO
        
        /****** Object:  Table [dbo].[calendar]    Script Date: 03/03/2011 21:43:47 ******/
        SET ANSI_NULLS ON
        GO
        
        SET QUOTED_IDENTIFIER ON
        GO
        
        SET ANSI_PADDING ON
        GO
        
        CREATE TABLE [dbo].[calendar](
            [symbol] [varchar](8) NULL,
            [date_] [datetime] NULL,
            [isedate] [bit] NULL,
            [tclose] [numeric](9, 4) NULL
        ) ON [PRIMARY]
        
        GO
        
        SET ANSI_PADDING OFF
        GO

        在天软安装目录\plguin\Execsql.ini中的配置如下:
    [testsql]
    ConnectStr=Provider=MSDAORA.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=test;Data Source=localhost(请根据本地实际情况进行配置,此处为笔者本机的配置)
    permit=local
        在天软平台新建函数,代码如下:
        

        Function Function94();
        Begin
           setsysparam(pn_stock(),'SZ000002');   a:=nday(10,'stocKid',getsysparam(pn_stock()),'d',datetostr(sp_time()),'isedate',istradeday(sp_time()),'c',close());
           sqlstate:=rdo2 function93('calendar','testsql',a);
           return sqlstate;
        End;
        Function Function93(table,dbname,a);
        Begin
           return Insert sqltable table of dbname insertfields(['date_'],['tclose'])
           select ['d'] as 'date_',['c'] as 'tclose' from a end;
        End;
        

        运行function94后,如果返回结果为1则插入成功,查询数据库