需要为应用程序写个接口,功能是根据应用程序(C++)传过来的参数,查询出上万条记录,然后返回给应用程序端,请问如何接收返回的记录。
因为数据量可能超过十万,而且各列数据类型不一致,用数组接收似乎不够方便,存成文本形式不用考虑!谢谢

解决方案 »

  1.   

    不是WEB形式,相当于一个应用程序需要该问数据库,但不懂数据库操作,而我需要写个接口从数据库中取数据,然后把我的程序放到应用程序中,作为他的一部分,这样的话,应用程序调用接口返回上万条记录,如何接收这个数据来作下一步处理。
      

  2.   

    谢谢,你说的集合类型是指STL那些吗,主要是我对C++也不是很熟。
    还有个问题,我访问ORACLE,用的PROC*C,但发觉不够灵活,因为表很多,而每个表的列数又不一样,这样的话为取出所有数据,则有多少个表,则相对应的得有多少个宿主结构数组和指示结构数组(列有NULL值),这样的话显得不够灵活。
    所以目前打算研究下ODBC和ADO,这些都没用过,不知道那个方便些,在处理上也灵活,就是在查询后不需要针对不同表定义不同变量,可以像JDBC那样处理数据库。
      

  3.   

    上W的记录,我觉得你还是先放在一个所谓的临时表中,也就是table,然后再按你要求加工要多少取多少,避免全部丢给前端展示.
      

  4.   

    这两天我在学ADO,但查询数据后,执行这样的语句_variant_t item=m_pRecordset->GetCollect("ename")后;感觉ADO也是需要为不同表单独编程实现,也许我没表达清楚,
    我的意思就是能不能动态取值 ,不需要提前知道每张表里有什么字段,传个表名就可以批量的将数据读取出来然后存入EXCEL或者什么地方,类似有那种可以提前查出此表共有多少列,然后内循环遍历每一列,读一列插入EXCEL中,再用外循环while(!m_pRecordset->adoEOF);
    这样我就不需要为每张表中的每一列写程序,而只需为所有表写一个通用的程序。谢谢大家,帮帮忙。
      

  5.   

    上面的问题我解决了,但现在又有新问题,就是将数据存入EXCEL的操作,感觉不太会啊
      

  6.   

    import java.io.*;    
    import jxl.*;    
    import jxl.write.*;    
       
    /** 
    * @author Ken 

    * To change the template for this generated type comment go to 
    * Window>Preferences>Java>Code Generation>Code and Comments 
    */   
    public class CreateXLS {    
       
        public static void main(String[] args) {    
            try {    
                //open file.    
                 WritableWorkbook book = Workbook.createWorkbook(new File("d:/Test.xls"));    
                    
                //create Sheet named "Sheet_1". 0 means this is 1st page.    
                 WritableSheet sheet = book.createSheet("Sheet_1", 0);    
                    
                //define cell column and row in Label Constructor, and cell content write "test".    
                //cell is 1st-Column,1st-Row. value is "test".    
                 Label label = new Label(0, 0, "test");    
                //add defined cell above to sheet instance.    
                 sheet.addCell(label);    
                    
                //create cell using add numeric. WARN:necessarily use integrated package-path, otherwise will be throws path-error.    
                //cell is 2nd-Column, 1st-Row. value is 789.123.    
                 jxl.write.Number number = new jxl.write.Number(1, 0, 789.123);    
                //add defined cell above to sheet instance.    
                 sheet.addCell(number);    
                    
                //add defined all cell above to case.    
                 book.write();    
                //close file case.    
                 book.close();    
             } catch (Exception e) {    
                 e.printStackTrace();    
             }    
         }    
    }