VB的代码,其中a.udl的连接字符串是:"Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=zengjiyue;Initial Catalog=Workspace;Data Source=."Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset
Private Declare Function GetTickCount Lib "kernel32" () As LongPrivate Sub Form_Load()
Set cnn = New ADODB.Connection
Set rs = New ADODB.Recordset
cnn.Open "file name=c:\a.udl"
Dim t1 As Long, FieldCount As Long, i As Long
rs.MaxRecords = 50000
rs.CacheSize = 1000
t1 = GetTickCount()
rs.Open "select id,trddt,stkcd from dalyr", cnn, adOpenStatic, adLockReadOnly, adCmdText
FieldCount = rs.Fields.Count
rs.MoveNext
While Not rs.EOF
For i = 0 To FieldCount - 1
obj = rs.Fields(i).Value
Next i
rs.MoveNext
Wend
MsgBox GetTickCount() - t1
End SubPrivate Sub Form_Unload(Cancel As Integer)
Set cnn = Nothing
Set rs = Nothing
End Sub
Dim rs As ADODB.Recordset
Private Declare Function GetTickCount Lib "kernel32" () As LongPrivate Sub Form_Load()
Set cnn = New ADODB.Connection
Set rs = New ADODB.Recordset
cnn.Open "file name=c:\a.udl"
Dim t1 As Long, FieldCount As Long, i As Long
rs.MaxRecords = 50000
rs.CacheSize = 1000
t1 = GetTickCount()
rs.Open "select id,trddt,stkcd from dalyr", cnn, adOpenStatic, adLockReadOnly, adCmdText
FieldCount = rs.Fields.Count
rs.MoveNext
While Not rs.EOF
For i = 0 To FieldCount - 1
obj = rs.Fields(i).Value
Next i
rs.MoveNext
Wend
MsgBox GetTickCount() - t1
End SubPrivate Sub Form_Unload(Cancel As Integer)
Set cnn = Nothing
Set rs = Nothing
End Sub
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.DriverManager;
import java.sql.Connection;public class testResultSet {
public static void main(String[] args) {
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection conn = DriverManager.getConnection(
"jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=workspace","sa","");
long t1=System.currentTimeMillis();
PreparedStatement pstmt=conn.prepareStatement("select id,stkcd,trddt from dalyr");
pstmt.setFetchSize(1000);
pstmt.setMaxRows(50000);
ResultSet set=pstmt.executeQuery(); //long t1=System.currentTimeMillis();
int cols=set.getMetaData().getColumnCount(),j;
Object obj;
j=0;
while(set.next()){
j++;
for (int i=1;i <= cols;i++) {
obj=set.getObject(i);
}
}
System.out.println("fetch "+j+" rows in time:"+(System.currentTimeMillis()-t1)+"ms");
}
catch(Exception ex) {
System.out.println(ex);
}
}
}