麻烦将这段代码改写成DELPHI的代码。
OleDbConnection conn = new OleDbConnection();
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
conn.ConnectionString = "Provider=VFPOLEDB.1;Data Source=" + cmn.RptPath + ";user id=admin;password=";
string ttt = DateTime.Now.ToString("yyyyMMddHHmmss");
if (this.ckb03.Checked)
{
conn.Open();
cmd.CommandText = "create table [query03_" + ttt + ".dbf] (orgid char(4),custid char(20),fundid char(20),changeflag char(1),custname char(16),bizdate int,digestname char(16),ordertime int,fundeffect numeric(19,2),serverid int,moneytype char(1),matchtime int,matchqty int)";
cmd.ExecuteNonQuery();
foreach (DataRow dr in ds_save.Tables["query03"].Rows)
{
cmd.CommandText = "insert into [query03_" + ttt + ".dbf] values('" + dr["orgid"].ToString() + "','" + dr["custid"].ToString() +
"','" + dr["fundid"].ToString() + "','" + dr["changeflag"].ToString() + "','" + dr["custname"].ToString() + "'," + dr["bizdate"].ToString() +
",'" + dr["digestname"].ToString() + "'," + dr["ordertime"].ToString() + "," + dr["fundeffect"].ToString() + "," + dr["serverid"].ToString() + ",'" +
dr["moneytype"].ToString() + "'," + dr["matchtime"].ToString() + "," + dr["matchqty"].ToString() + ")";
cmd.ExecuteNonQuery();
}
conn.Close();
OleDbConnection conn = new OleDbConnection();你用ADOCONNECTION就行了。
ADOCONNECTION的连接字为
ADOQUERY的connection属性为ADOCONNECTION
Provider=VFPOLEDB.1;Data Source=" + cmn.RptPath + ";user id=admin;password=";string ttt = FormatDateTime("yyyyMMddHHmmss",now);ADOQUERY1.SQL := "create table [query03_" + ttt + ".dbf] (orgid char(4),custid char(20),fundid char(20),changeflag char(1),custname char(16),bizdate int,digestname char(16),ordertime int,fundeffect numeric(19,2),serverid int,moneytype char(1),matchtime int,matchqty int)";'
adoquery1.execsql;
adoquery1.SQL.TEXT := SELECT * FROM query03
FOR I := 0 TO adoquery1.RECORDCOOUNT - 1
ADOQUERY2.TEXT := adoquery1.FieldByName('orgid').asstring;
Next;
....在Open这个表取一下值,生成INSERT INTO 语句就行了。
最后执行一下。ADOQUERY2.EXECSQL;