G
gmsft
Unregistered / Unconfirmed
GUEST, unregistred user!
//ADOConnection1连接一个文本文件
ADOConnection1.Connected := False;
ADOConnection1.ConnectionString := ' Provider=Microsoft.Jet.OLEDB.4.0;'
+ ' Data Source=D:/Projects/Tmp;'
+ ' Extended Properties=Text;'
+ ' Persist Security Info=False';
ADOConnection1.LoginPrompt := False;
ADOConnection1.Connected := True;
ShowMessage('连接成功!');
//下面的语句将文本文件导入 SQL Server,可通过;
ADOConnection1.Execute(' SELECT Company, '
+' SUM(Amount) AS EAmount,'
+' SUM(Amount) AS IAmount'
+' INTO tmpTable1 IN [ODBC]'
+' [ODBC;Driver=SQL Server;UID=sa;PWD=;'
+' Server=192.168.0.2;DataBase=vv;]'
+' FROM SD0509.txt'
+' GROUP BY Company');
ShowMessage('导入成功!');
//下面的语句将文本文件导入 SQL Server,不能通过;
ADOConnection1.Execute(' SELECT Company, '
+' SUM(case IE when ''0'' then Amount else 0 end) AS EAmount,'
+' SUM(case IE when ''1'' then Amount else 0 end) AS IAmount'
+' INTO tmpTable2 IN [ODBC]'
+' [ODBC;Driver=SQL Server;UID=sa;PWD=;'
+' Server=192.168.0.2;DataBase=vv;]'
+' FROM SD0509.txt'
+' GROUP BY Company');
ShowMessage('导入成功!');
//ADOConnection1连接一个 SQL Server 数据库;
ADOConnection2.Connected := False;
ADOConnection2.ConnectionString := 'Provider=SQLOLEDB.1;'
+ 'Persist Security Info=False;'
+ 'User ID=sa;'
+ 'Initial Catalog=vv;'
+ 'Data Source=192.168.0.2';
ADOConnection2.LoginPrompt := False;
ADOConnection2.Connected := True;
ShowMessage('连接成功!');
//下面的查询可通过;
ADOConnection2.Execute(' SELECT Company, '
+' SUM(case IE when ''0'' then Amount else 0 end) AS EAmount,'
+' SUM(case IE when ''1'' then Amount else 0 end) AS IAmount'
+' FROM Business'
+' GROUP BY Company');
ShowMessage('导入成功!');
//下面的查询不能通过;
ADOConnection2.Execute(' SELECT Company, '
+' SUM(case IE when ''0'' then Amount else 0 end) AS EAmount,'
+' SUM(case IE when ''1'' then Amount else 0 end) AS IAmount'
+' INTO tmpTable3'
+' FROM Business'
+' GROUP BY Company');
ShowMessage('导入成功!');
请各位富翁指点:
1、为什么第二条加入SUM(case...when...then..else..end),语句就不能通过呢?
2、但是直接查询 SQL Server 则可以使用SUM(case...when...then..else..end)?
3、直接查询 SQL Server 为什么不能插入临时表?
ADOConnection1.Connected := False;
ADOConnection1.ConnectionString := ' Provider=Microsoft.Jet.OLEDB.4.0;'
+ ' Data Source=D:/Projects/Tmp;'
+ ' Extended Properties=Text;'
+ ' Persist Security Info=False';
ADOConnection1.LoginPrompt := False;
ADOConnection1.Connected := True;
ShowMessage('连接成功!');
//下面的语句将文本文件导入 SQL Server,可通过;
ADOConnection1.Execute(' SELECT Company, '
+' SUM(Amount) AS EAmount,'
+' SUM(Amount) AS IAmount'
+' INTO tmpTable1 IN [ODBC]'
+' [ODBC;Driver=SQL Server;UID=sa;PWD=;'
+' Server=192.168.0.2;DataBase=vv;]'
+' FROM SD0509.txt'
+' GROUP BY Company');
ShowMessage('导入成功!');
//下面的语句将文本文件导入 SQL Server,不能通过;
ADOConnection1.Execute(' SELECT Company, '
+' SUM(case IE when ''0'' then Amount else 0 end) AS EAmount,'
+' SUM(case IE when ''1'' then Amount else 0 end) AS IAmount'
+' INTO tmpTable2 IN [ODBC]'
+' [ODBC;Driver=SQL Server;UID=sa;PWD=;'
+' Server=192.168.0.2;DataBase=vv;]'
+' FROM SD0509.txt'
+' GROUP BY Company');
ShowMessage('导入成功!');
//ADOConnection1连接一个 SQL Server 数据库;
ADOConnection2.Connected := False;
ADOConnection2.ConnectionString := 'Provider=SQLOLEDB.1;'
+ 'Persist Security Info=False;'
+ 'User ID=sa;'
+ 'Initial Catalog=vv;'
+ 'Data Source=192.168.0.2';
ADOConnection2.LoginPrompt := False;
ADOConnection2.Connected := True;
ShowMessage('连接成功!');
//下面的查询可通过;
ADOConnection2.Execute(' SELECT Company, '
+' SUM(case IE when ''0'' then Amount else 0 end) AS EAmount,'
+' SUM(case IE when ''1'' then Amount else 0 end) AS IAmount'
+' FROM Business'
+' GROUP BY Company');
ShowMessage('导入成功!');
//下面的查询不能通过;
ADOConnection2.Execute(' SELECT Company, '
+' SUM(case IE when ''0'' then Amount else 0 end) AS EAmount,'
+' SUM(case IE when ''1'' then Amount else 0 end) AS IAmount'
+' INTO tmpTable3'
+' FROM Business'
+' GROUP BY Company');
ShowMessage('导入成功!');
请各位富翁指点:
1、为什么第二条加入SUM(case...when...then..else..end),语句就不能通过呢?
2、但是直接查询 SQL Server 则可以使用SUM(case...when...then..else..end)?
3、直接查询 SQL Server 为什么不能插入临时表?