Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 9249753
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 18, 20262026-06-18T10:16:39+00:00 2026-06-18T10:16:39+00:00

I have a call to QSqlQuery which returns no rows when I use QSqlQuery::bindValue,

  • 0

I have a call to QSqlQuery which returns no rows when I use QSqlQuery::bindValue, but does return rows when I add the values in with QString::arg.

Specifically, this returns nothing:

QSqlQuery q(QSqlDatabase::database( mDbAdapter->dbFilename() ));
q.prepare("select Focus.TextFormId as ID, Focus, TextForm, Gloss from (select TextFormId,group_concat( Transcription , ' ' ) as TextForm, group_concat( Gloss , '-' ) as Gloss from (select TextFormId,AllomorphId,Allomorph.Form as Transcription,LexicalEntryGloss.Form as Gloss from MorphologicalAnalysisMembers,Allomorph,LexicalEntryGloss where TextFormId in ( select TextFormId from MorphologicalAnalysisMembers where AllomorphId in (select _id from Allomorph where  LexicalEntryId=:LexicalEntryId and WritingSystem=:TextFormWS) ) and AllomorphId = Allomorph._id and Allomorph.LexicalEntryId = LexicalEntryGloss.LexicalEntryId and LexicalEntryGloss.WritingSystem=:GlossWS order by TextFormId, AllomorphOrder) group by TextFormId ) as Concatenation left join  ( select TextFormId, Form as Focus from Allomorph,MorphologicalAnalysisMembers on Allomorph._id=MorphologicalAnalysisMembers.AllomorphId and LexicalEntryId=:LexicalEntryId ) as Focus on Focus.TextFormId = Concatenation.TextFormId;");
q.bindValue(":LexicalEntryId", mLexicalEntryId);
q.bindValue(":GlossWS", mGlossWs.id());
q.bindValue(":TextFormWS", mTextFormWs.id());
if( !q.exec() )
    qWarning() << q.lastError().text() << q.executedQuery();

Whereas this returns the proper result

QSqlQuery q(QSqlDatabase::database( mDbAdapter->dbFilename() ));
q.prepare(
        QString("select Focus.TextFormId as ID, Focus, TextForm, Gloss from (select TextFormId,group_concat( Transcription , ' ' ) as TextForm, group_concat( Gloss , '-' ) as Gloss from (select TextFormId,AllomorphId,Allomorph.Form as Transcription,LexicalEntryGloss.Form as Gloss from MorphologicalAnalysisMembers,Allomorph,LexicalEntryGloss where TextFormId in ( select TextFormId from MorphologicalAnalysisMembers where AllomorphId in (select _id from Allomorph where  LexicalEntryId=%1 and WritingSystem=%3) ) and AllomorphId = Allomorph._id and Allomorph.LexicalEntryId = LexicalEntryGloss.LexicalEntryId and LexicalEntryGloss.WritingSystem=%2 order by TextFormId, AllomorphOrder) group by TextFormId ) as Concatenation left join  ( select TextFormId, Form as Focus from Allomorph,MorphologicalAnalysisMembers on Allomorph._id=MorphologicalAnalysisMembers.AllomorphId and LexicalEntryId=%1 ) as Focus on Focus.TextFormId = Concatenation.TextFormId;")
        .arg(mLexicalEntryId).arg(mGlossWs.id()).arg(mTextFormWs.id())
        );
if( !q.exec() )
    qWarning() << q.lastError().text() << q.executedQuery();

It would be quite a bit to reproduce the entire database, but here is the query in a more intelligible form:

select Focus.TextFormId as ID, Focus, TextForm, Gloss from (select TextFormId,group_concat( Transcription , ' ' ) as TextForm, group_concat( Gloss , '-' ) as Gloss
from 
(select TextFormId,AllomorphId,Allomorph.Form as Transcription,LexicalEntryGloss.Form as Gloss 
    from MorphologicalAnalysisMembers,Allomorph,LexicalEntryGloss 
    where TextFormId in 
        ( select TextFormId from MorphologicalAnalysisMembers where AllomorphId in 
            (select _id from Allomorph where  LexicalEntryId=%1 and WritingSystem=%3) ) 
        and AllomorphId = Allomorph._id 
        and Allomorph.LexicalEntryId = LexicalEntryGloss.LexicalEntryId 
        and LexicalEntryGloss.WritingSystem=%2 
        order by TextFormId, AllomorphOrder) 
    group by TextFormId ) as Concatenation 
    left join  
    ( select TextFormId, Form as Focus from Allomorph,MorphologicalAnalysisMembers 
        on Allomorph._id=MorphologicalAnalysisMembers.AllomorphId and LexicalEntryId=%1 ) 
    as Focus on Focus.TextFormId = Concatenation.TextFormId;

Granted that there are probably ways to improve the query, I searched the documents and couldn’t find any indication that QSqlQuery::bindValue has restrictions.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-18T10:16:40+00:00Added an answer on June 18, 2026 at 10:16 am

    I was eventually able to get this to work with binding by changing the the way I bound values. It works if I insert mLexicalEntryId twice using different placeholders (first example below), or if I use the ? notation for binding values (second example below). Though I otherwise prefer to use the placeholders, it feels silly to have two different placeholders for the same variable, so I will stick with ? notation.

    q.prepare("select Focus.TextFormId as ID, Focus, TextForm, Gloss from (select TextFormId,group_concat( Transcription , ' ' ) as TextForm, group_concat( Gloss , '-' ) as Gloss from (select TextFormId,AllomorphId,Allomorph.Form as Transcription,LexicalEntryGloss.Form as Gloss from MorphologicalAnalysisMembers,Allomorph,LexicalEntryGloss where TextFormId in ( select TextFormId from MorphologicalAnalysisMembers where AllomorphId in (select _id from Allomorph where  LexicalEntryId=:One and WritingSystem=:Three) ) and AllomorphId = Allomorph._id and Allomorph.LexicalEntryId = LexicalEntryGloss.LexicalEntryId and LexicalEntryGloss.WritingSystem=:Two order by TextFormId, AllomorphOrder) group by TextFormId ) as Concatenation left join  ( select TextFormId, Form as Focus from Allomorph,MorphologicalAnalysisMembers on Allomorph._id=MorphologicalAnalysisMembers.AllomorphId and LexicalEntryId=:Four ) as Focus on Focus.TextFormId = Concatenation.TextFormId;");
    q.bindValue(":One", mLexicalEntryId);
    q.bindValue(":Two", mGlossWs.id());
    q.bindValue(":Three", mTextFormWs.id());
    q.bindValue(":Four", mLexicalEntryId);
    
    q.prepare("select Focus.TextFormId as ID, Focus, TextForm, Gloss from (select TextFormId,group_concat( Transcription , ' ' ) as TextForm, group_concat( Gloss , '-' ) as Gloss from (select TextFormId,AllomorphId,Allomorph.Form as Transcription,LexicalEntryGloss.Form as Gloss from MorphologicalAnalysisMembers,Allomorph,LexicalEntryGloss where TextFormId in ( select TextFormId from MorphologicalAnalysisMembers where AllomorphId in (select _id from Allomorph where  LexicalEntryId=? and WritingSystem=?) ) and AllomorphId = Allomorph._id and Allomorph.LexicalEntryId = LexicalEntryGloss.LexicalEntryId and LexicalEntryGloss.WritingSystem=? order by TextFormId, AllomorphOrder) group by TextFormId ) as Concatenation left join  ( select TextFormId, Form as Focus from Allomorph,MorphologicalAnalysisMembers on Allomorph._id=MorphologicalAnalysisMembers.AllomorphId and LexicalEntryId=? ) as Focus on Focus.TextFormId = Concatenation.TextFormId;");
    q.addBindValue(mLexicalEntryId);
    q.addBindValue(mTextFormWs.id());
    q.addBindValue(mGlossWs.id());
    q.addBindValue(mLexicalEntryId);
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a call like this: $(#ContextMenuModal).height($(body).height()); However $(body).height() returns undefined when I view
I have a call to powershell.exe that looks like this, and which works from
I have a call to a third-party C++ library which I have put into
I have a call to Read on NetworkStream objeck, which uses Socket.Receive internally. Say
i have call function on onkeyup event of textbox which pass the data using
I have an SP which returns an unknown amount of data, here is an
I am currently making a Cordova plugin that will have call a method which
I have this call that makes a client log in, but how do i
I have to call a remote service which expects me to send some parameters
I have a call to a function on my webpage. This function does some

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.