QT 使用子函数,进行mysql进行查询,返回一个类数组。

运行环境: QT4.8

Linux: Ubuntu 12.04.5

想完成的功能:用子函数传入参数,查询出多条记录,每条参数记录在定义好的类中,这个子函数返回这个类数组。

各位大哥,救救孩子,毕设写到这里就嗝屁了,我开始用的想法是返回一个

QString类型的数组,代码如下:

QString *selectStudentAndClass(QString holdno){
    qDebug()<<"\n\n-----into selectStudentAndClass  OK  -----";
    Student find;
    getStudent(QStoCH(holdno),find);
    QSqlQuery query;
    QString stu_no[50] = "";
    QString l_stu_no;
    int count = 0 ;

    QString dbyuju1 = QString("SELECT US_W_CL.STU_NO FROM US_W_CL WHERE US_W_CL.SWC_NUNBER = (SELECT US_W_CL.SWC_NUNBER FROM US_W_CL WHERE US_W_CL.STU_NO = \"%1\")")
            .arg(find.STU_NO);
    qDebug()<<"select US_W_CL.SWC_NUNBER sql:"<<dbyuju1;
    query.exec(dbyuju1);
    while(query.next()){
        l_stu_no = query.value(0).toString();
        if(l_stu_no.isEmpty()){
            qDebug() <<"select US_W_CL.l_stu_no ERROR " ;
           return 0;
        }
        else{
            qDebug() <<"select US_W_CL.l_stu_no is :"<<l_stu_no ;
            stu_no[count] = l_stu_no;
            qDebug() <<"***select US_W_CL.l_stu_no is :***"<<stu_no[count]<<"count is :"<<count;
           // stu_no[++count] = "\0";
            count ++;
        }
    }
    count = 0;
    while(!stu_no[count].isEmpty()){
        qDebug() <<"stu_no[count]:"<<stu_no[count]<<"count is :"<<count;
        count++;
    }
     qDebug()<<"-----into selectStudentAndClass  end  -----\n";

    return stu_no;
}

但是好像内存泄漏了,主函数中使用这个函数之后,虽然可以得到返回的值,可是调用这个值就会程序崩溃,我也崩溃了。救救孩子!!!

1个回答

问题解决了。靠自己!!!!哭了,结局的思路是直接在这个贴上去的代码里面查询,然后返回的是一个student类,这样就可以了!!!!代码附上:

Student *selectStudentAndClass(QString holdno,int &recount){
    qDebug()<<"\n\n-----into selectStudentAndClass  OK  -----";
    Student find;
    Student l_student[50];
    getStudent(QStoCH(holdno),find);
    QSqlQuery query;
    QString l_stu_no;
    int count = 0 ;
    QString dbyuju1 = QString("SELECT US_W_CL.STU_NO FROM US_W_CL WHERE US_W_CL.SWC_NUNBER = (SELECT US_W_CL.SWC_NUNBER FROM US_W_CL WHERE US_W_CL.STU_NO = \"%1\")")
            .arg(find.STU_NO);
    qDebug()<<"select US_W_CL.SWC_NUNBER sql:"<<dbyuju1;
    query.exec(dbyuju1);
    while(query.next()){
        l_stu_no = query.value(0).toString();
        if(l_stu_no.isEmpty()){
            qDebug() <<"select US_W_CL.l_stu_no ERROR " ;
           return 0;
        }
        else{
            qDebug() <<"select US_W_CL.l_stu_no is :"<<l_stu_no ;
            if(getStudentOfStuNo(l_stu_no,l_student[count])){
                qDebug()<<"selectStudentAndClass.getStudentOfStuNo find it,\nl_student.HOLD_NO is :"<<l_student[count].HOLD_NO;
            }
            else{
                qDebug()<<"selectStudentAndClass.getStudentOfStuNo don't find it";
            }
            count ++;
        }
    }
    recount = count;
    qDebug()<<"selectStudentAndClass.count is :"<<count<<" and "<<recount;
    qDebug()<<"\n\n-----into selectStudentAndClass  end  -----";
    return l_student;
}

本人毕设代码,各位如果要用希望更改下~谢谢,为了小白学习献身自我。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
使用qt进行post
请问有没有这方面的demo或者教程呢
使用QT进行二叉树遍历
使用QT进行二叉树和索引动画遍历,高手给个代码啊!
使用mysql进行查询, 遇特殊字符
rnrnselect * from t1 where name=':value';rn其中:value为用户输入, 当:value中包含' 时,查询报错, 我使用\'替换' 是否可以? 另外是否还有其它特殊字符需要处理? mysql是否有专门的函数做此转换?
使用HQL进行查询
[java] view plain copyimport java.util.*;  import org.hibernate.*;  import org.hibernate.query.Query;    public class Main {        public static void main(String... args) {          Transaction trans...
使用正则表达式进行查询
– 使用正则表达式进行查询 – author :余辉 – 时间 :2019-06-21 10:38:02 – 查询以特定字符或字符串开头的记录 SELECT * FROM inp_entrealation WHERE LJSOURCEQYNAME REGEXP ‘^佛山’ – 查询以特定字符或字符串结尾的记录 SELECT * FROM inp_entrealation WHERE LJSOUR...
使用MySQL进行全文索引
使用MYSQL进行全文索引 1. 背景 需要对数据库中某张表里的若干字段进行全文索引。 2. 分析 可以采用三种方法: 1. mysql全文索引 2. lucene进行索引 3. 将mysql数据库转为mongodb 最后决定使用mysql全文索引,省得编码了。 3. 步骤 基本步骤如下: 1. 需要修改数据库引擎,从innodb转为myiam 2. 建立全文索引
php 下进行mysql参数化查询
记录一下,php下的mysql参数化查询 [php] view plain $query = sprintf("SELECT * FROM Users where UserName='%s' and Password='%s'",                      mysql_real_escape_string($Username),
JDBC操作MySQL进行查询
讲解使用JDBC连接MySQL数据库,为java开发人员必须掌握的技能!
QT使用样式表进行界面美化
QT使用样式表进行简单的界面美化。在default.css文件中修改界面上各控件包括Dlg的样式,可改背景颜色图片,将default.css放到exe运行目录下即可。 简单实现了QT使用样式表进行美化界面,简单明了。
Qt 使用正则表达式进行字符串替换
Qt使用类QRegExp封装正则表达式,这里举一个例子。 #include &amp;lt;QRegExp&amp;gt; int main() { QRegExp re = &quot;&amp;lt;a href=\&quot;(.*)\&quot;&amp;gt;(.*)&amp;lt;/a&amp;gt;&quot;; QString str = &quot;&amp;lt;a href=\&quot;blog.csdn.net\&quot;&amp;gt;CSDN博客地址(&amp;lt;a
使用Qt Designer进行布局
欢迎加入QQ群:853840665,群内分享大量资料,供大家学习     在使用Form之前,需要将Form上的对象放置到布局中。这确保在应用程序中预览或使用Form时,对象将正确显示。在布局中放置对象还可以确保在调整窗体大小时它们也能正确调整大小。 应用和打断布局     管理对象的最简单方法是对一组现有对象应用布局。通过选择需要管理的对象并使用主工具栏、菜单或上下文菜单应用到标准布局...
Qt:Qt使用WM_COPYDATA消息进行进程通信
Qt使用WM_COPYDATA消息进行进程通信 如题,Qt使用WM_COPYDATA消息进行进程通信,这次我们使用windows相关api,来实现不同的 Qt窗口进程间的通信,使用的window的 WM_COPYDATA消息来实现。 实现效果 实现效果是 ,多个客户端 窗口向服务端窗口发送消息,服务端接受到消息后 给客户端一个回馈。效果截图: 代码解读 Qt中截获Windows消息,是使用qt...
mysql 在查询结果中进行二次查询
第一次查询:查询身份证编号和出现次数 select cardid,count(cardid) as total from p_person_info group by cardid 在第一次查询结果进行二次查询:查询身份证出现次数大于1以上 select cardid from (select cardid,count(cardid) as total from p_pers
如何设计子函数能返回一个二元数组
遇到子函数返回二元数组值的问题,谁能说一下,最好可以提供个实例,看起来容易理解些。rn
怎样在子函数中返回数组值
兄弟想在一个子函数中返回一个数组值.rn请大哥们指教,意思如下:rn 主函数()rnrn 调用子函数();rn 在打印出子函数中数组a的值.rnrn子函数()rnrnint a[4]=1,2,3,4rnrn
使用find命令进行查询拷贝
背景 查询*.jar的时候,想将其拷贝到指定的目录下,如果使用之前的命令,一般都是先找到jar文件的位置,然后使用cp命令去复制。但这样做的效率很低,突然想起了很久之前面试的一次面试,面试官让我用1条命令查找删除指定的有规律的文件,当时使用的是find / -name *** | xagr rm -rf ,但被面试官指出这个2条命令,中间使用了管道来连接,实质还是2条命令。最后面试官问我知不知道
使用python进行whois查询
使用python进行whois查询使用pip命令安装whois pip install python-whois Python 2.7.6 (default, Oct 26 2016, 20:30:19) [GCC 4.8.4] on linux2 Type "help", "copyright", "credits" or "license" for more information. >
使用数据集进行查询问题
使用数据集(TableAdapter )进行数据填充时为什么会执行两次同样的SQL语句?
如何使用下拉列表进行查询?
请教各们专家:rnrn第一步:rnrn表A中有ID,NAME,SEX,AGE四个字段,想使用下拉列表提取其中"NAME"字段的信息,该步已完成,代码如下:rn <%rnset rs=server.CreateObject("adodb.recordset")rnrs.open "select * from A",conn,1,1rndo while not rs.eofrn%>rn " ><%=rs("NAME")%>rn <%rnrs.movenextrnlooprnrs.closernset rs=nothingrn%>rn rnrnrn第二步:rn在同一页面中,单击"提交"按钮,要在表格中显示出A表中相应数据.从这里开始的代码要怎么写?rnrn谢谢!rn
使用mysql存储过程进行迭代查询
有两张表材料类型(mc)和材料(m),rn表mc 表mrn 父节点 所属类型 rnid father_id id mc_idrn根据材料类型(mc)id,使用迭代查出该id下所有的子节点,然后再根据所有材料类型(mc)id查出对应的材料(m)id,请问用mysql存储过程怎么写,求高手赐教
使用PostgreSQL进行复杂查询
SQL复杂查询与视图。 数据说明 现在有一个spj数据库,其中有四个表,分别为: S P J SPJ 供应商代码表 零件表 工程项目表 供应情况表 SQL查询 创建视图 将零件表P表与供应情况SPJ表、供应商S表结合,得到零件与供应商的关系: CREATE VIEW P_S AS SELECT P.PNO,PNAME,COLOR,WEIGHT,S.SNO,JNO,QTY,S...
使用SQLQuery进行复杂查询
传统的SSH教学,存在着很大的问题。尤其是Spring整合Struts2道理何在? Spring整合Hibernate是好是坏?n本教程采用完全案例教学模式,通过深刻剖析,提出了与传统模式完全不同的更佳解决方案!
使用 DBUtils 进行查询操作
<p>rn <p>rn 20周年限定一卡通!<span style="color:#337FE5;">可学Java全部课程</span>,仅售799元(原价10374元),<span style="color:#E53333;">还送漫威正版授权机械键盘+CSDN 20周年限量版T恤+智能编程助手!</span>rn </p>rn <p>rn 点此链接购买:rn </p>rn <table>rn <tbody>rn <tr>rn <td>rn <span style="color:#337FE5;"><a href="https://edu.csdn.net/topic/teachercard?utm_source=jsk20xqy" target="_blank">https://edu.csdn.net/topic/teachercard?utm_source=jsk20xqy</a><br />rn</span>rn </td>rn </tr>rn </tbody>rn </table>rn</p>rn<p>rn <br />rn</p>rn<p>rn Java全程课程的第一阶段,主要讲授java语言基础,涉及变量、流程控制、面向对象、IO流、集合框架、多线程、网络编程,以及常用的MySQL数据库及Java操作数据库的技术JDBCrn</p>
Hibernate使用SQL进行查询
使用SQL语句进行查询的步骤: 得到sessionFactory 得到session 使用sql语句创建查询createQuery 规范返回值的类型,使用addScalar函数,第一个参数必须与ResultSet中的字段一一对应,区分大小写。 使用实例类接受返回的数据 使用list()进行进行查询演示代码如下: public List<VideoSchedule> getVideoScheduleL
使用AJAX进行WhoIs查询
使用AJAX进行WhoIs查询
如何使用Tquery进行查询?
只是用了TDFGrid,Tquery,Datasource三个空件,希望查询功能,语句如下:rnprocedure TForm2.TabSheet2Show(Sender: TObject);rnbeginrn with query1 dorn beginrn close;rn sql.clear;rn sql.add('select * from book');rnrn active:=true;rn end;rn edit1.setfocus;rnend;rnprocedure TForm2.Button1Click(Sender: TObject);rnbeginrn query1.close;rn query1.SQL.Clear;rn query1.SQL.add('select * from book where id=:Pid');rn query1.ParamByName('Pid').asstring:=edit1.text;rn query1.execsql;rn query1.Active;rnend;rn结果无法实现,请大侠执教.rn
C#使用参数进行查询
cmd.CommandText = "select nsrsbh from dj_nsrxx where nsrsbh = '123456789012345'";rnGridView1.DataSource = rd;rnGridView1.DataBind();rn结果为1条记录;rn换用rncmd.CommandText = "select nsrsbh,nsrmc,scjydz,fddbrmc,dhhm from dj_nsrxx where nsrsbh = @aa";rn MySqlParameter mp = new MySqlParameter("@aa", MySqlDbType.VarChar);rn mp.Value = "123456789012345";rn cmd.Parameters.Add(mp);rn MySqlDataReader rd = cmd.ExecuteReader();rnGridView1.DataSource = rd;rnGridView1.DataBind();rn结果为零记录,我哪里不对,我用的是MYSQL,谢谢!!!
使用Python进行DNS查询
最近,实验室布置一个简单的任务,对学校官网www.hitwh.edu.cn进行DNS查询 要求使用python,既然布置了,那就做做呗。 1.pyDNS库 在linux上用python3装pyDNS总是会出现问题,所以放弃了python3,最后总算是用python2装好了pyDNS库>>>improt DNS >>>import成功了,这是第一步 下面开始写代码!/usr/bin/env p
使用sql进行查询重复数据
题目:  在user表中,查出name属性值重复2次以上的记录数据。 答: select * from user t where t.name in (select name from user group by name  having count(name) > 1); 如: 现在就是需要查询出在该表中的各记录之间,“name”值存在重复的项;
hibernate使用Query进行查询
hibernate使用Query进行查询初探
使用Hibernate进行简单查询
1、加入Hibernate的Jar包,并创建会话工厂HibernateUtil 2、加入数据库的Jar包 3、创建实体类Emp,省略了构造和setter、getter方法 package com.accp.entity; import java.util.Date; /** * 员工实体类 */ public class Emp { private Integer ...
使用QUERY1进行SQL查询
大侠:rn 我在数据库当中有如下记录rn RQ NAME NUM2 rn 2003-01-01 A 5 rn 2003-01-02 B rn 2003-01-03 c rn 2003-01-04 d 31rn 2003-01-05 e 28 rn 2003-01-01 f rn 2003-01-02 g rn 2003-01-03 j rn 2003-01-04 i 31rn 2003-01-05 j rn . . .rn .rn .rn .rn现在我想通过QUERY1.SQL语句查处所有记录,但是有的记录的NUM字段时空的rn那么这调记录的NUM数值应该去距离当前记录日期最近的并且NUM2是有值的记录rn执行SELECT 之后rn希望时rn 2003-01-01 A 5 rn 2003-01-02 B 5rn 2003-01-03 c 5rn 2003-01-04 d 31rn 2003-01-05 e 28 rn 2003-01-01 f 28 rn 2003-01-02 g 28rn 2003-01-03 j 28rn 2003-01-04 i 31rn 2003-01-05 j 31
如果在存储过程返回的结果集上进行查询
如果在存储过程返回的结果集上进行查询?rnrn比如rnrnEXEC sp_helpuserrnrn我想在这个存储过程返回的结果集上进行查询。 语句应该怎么写? 谢谢!
使用ERwin进行MYsql数据库设计
使用ERwin进行MYsql数据库设计 文档
使用erwin进行mysql建模
1,定义数据字典,把需要用到的数据类型创建好  2,在物理模式下,设置数据字典,修改comment为%AttName 这样会默认使用逻辑模式下,实体属性的名称作为字段的注释 3,物理模式下选择database->pre & post script->Model-Level,如下图添加角本 在生成数据库时,使用字段的注释  %ForEachTable() { alter T
使用XtraBackup进行Mysql备份还原
一、备份说明 https://www.percona.com/downloads/ [root@www ~]#man innobackupex INNOBACKUPEX(1)               Percona XtraBackup               INNOBACKUPEX(1) $ innobackupex--user=DBUSER --password=SECRET...
mysql 使用别名进行删除操作
单表删除 DELETE t from table2 t where t.id = "ff3a59cd-c109-4422-bfb6-6b0e33357943"; 多表关联删除两种写法 一: DELETE t from table t INNER JOIN table2 t2 on t.id =t2.id where t2.name="张三"; 二: DELETE
python 使用mysql进行操作
使用pyclarm直接在file-deflaut setting中找到mysql-connector-python模块导入。 在mysql数据库中创建数据python 在数据库中创建数据表peopleimport mysql.connector db = mysql.connector.connect(host='localhost', user='ro
使用sysbench进行mysql压测
sysbench是一个模块化的、跨平台、多线程基准测试工具,主要还是用来做mysql数据库OLTP性能测试
使用 mysql 进行 CRUD操作
C: Create R:Read U: Update D: Delete 增删改查 //安装mysql模块 const mysql=require('mysql') //创建数据库的连接对象 const connection=mysql.createConnection({ host: '127.0.0.1', user: 'root', pas...
相关热词 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法