Discussion Board

Results 1 to 15 of 15
  1. #1
    Registered User Mutronics's Avatar
    Join Date
    Jan 2010
    Posts
    17
    Столкнулся необычной проблемой, без LIKE все находит, если точно набрать что ищешь, с LIKE не находит вобще ничего
    Code:
    	TBuf<50> iText;
    	TFileName QueryBuffer, StrFor;
    	RDbs rdbs;
    	RDbNamedDatabase database;
    	RDbView view;
    	_LIT(KFileName,"E:\\mydatabase.dat");
    	
    	iEdit1->GetText(iText);
    	QueryBuffer.Copy(_L("SELECT * FROM BASE WHERE fio LIKE '%"));
    	QueryBuffer.Append(iText);
    	QueryBuffer.Append(_L("%'"));
    	
    	rdbs.Connect();
    	database.Open(rdbs,KFileName);
    	view.Prepare(database,TDbQuery(QueryBuffer));
    	CleanupClosePushL(view);
    	view.EvaluateAll();
    	view.FirstL();
    	while(view.AtRow())
    	{
    		view.GetL();
    		StrFor.Append(view.ColDes(1));
    		StrFor.Append(_L("|"));
    		StrFor.Append(view.ColDes(2));
    		view.NextL();
    	}
    	CleanupStack::PopAndDestroy(1);
    	iRichText1->SetTextL(&StrFor);
    	iRichText1->DrawNow();
    	view.Close();
    	database.Close();
    	rdbs.Close();
    Last edited by Mutronics; 2010-02-07 at 06:58.

  2. #2
    Registered User Mutronics's Avatar
    Join Date
    Jan 2010
    Posts
    17
    есть такое подозрение, что LIKE отказывается работать

  3. #3
    Nokia Developer Champion Den123's Avatar
    Join Date
    Jul 2007
    Location
    Magnitogorsk, Russia
    Posts
    536
    По идее в подобных запросах нужно приведение к одному регистру делать - возможно из за этого like не работает.

  4. #4
    Registered User Mutronics's Avatar
    Join Date
    Jan 2010
    Posts
    17
    Не в регистре дело с LIKE вобще ничего не находит ни в каком регистре, без LIKE находит, но это уже не поиск.

  5. #5
    Registered User Mutronics's Avatar
    Join Date
    Jan 2010
    Posts
    17
    Если LIKE в EDBMS не работает, тогда это делает его бесполезным.

  6. #6
    Nokia Developer Moderator A.A.M.'s Avatar
    Join Date
    Jan 2008
    Location
    Moscow, Russia
    Posts
    3,308
    Ключевое слово "LIKE" в запросе конечно же должно работать. Только попробуйте вместо символа '%' использовать '*'. Вот выдержка из хелпа к SDK:
    Notes:
    Non SQL-standard characters in the pattern value are used as wildcards:
    • question mark (?) represents any single character
    • asterisk (*) represents zero or more characters

    Standard SQL uses the underscore (_) and percent (%) characters respectively.

  7. #7
    Registered User Mutronics's Avatar
    Join Date
    Jan 2010
    Posts
    17
    Спасибо помогло, первый язык в котором я столкнулся с изменением стандартов SQL.

  8. #8
    Registered User Mutronics's Avatar
    Join Date
    Jan 2010
    Posts
    17
    Еще маленький вопрос, какой тип строковых переменных может хранить больше 4096 TBuf16<4096> больше не берет?

  9. #9
    Registered User Mutronics's Avatar
    Join Date
    Jan 2010
    Posts
    17
    Спасибо нашел решение проблемы
    #define KSize 16384
    HBufC* StrFor;
    StrFor = HBufC::NewL(KSize);

  10. #10
    Nokia Developer Champion Den123's Avatar
    Join Date
    Jul 2007
    Location
    Magnitogorsk, Russia
    Posts
    536
    Нда. Напрягают такие особенности - лучше sqlite юзить

  11. #11
    Nokia Developer Moderator A.A.M.'s Avatar
    Join Date
    Jan 2008
    Location
    Moscow, Russia
    Posts
    3,308
    Mutronics
    Используйте тип столбца EDbColLongText16, который позволяет хранить, как указано в хелпе, 0 to 2^31 characters. И конечно HBufC, как вы уже отметили.

    Den123
    Лучше-то оно, конечно, лучше, но не всегда и не везде возможно, ведь на S60 3rd ed. SQLite официально не поддерживается к сожалению.

  12. #12
    Nokia Developer Moderator truf's Avatar
    Join Date
    Jun 2007
    Location
    Moscow, Russia
    Posts
    1,355
    Quote Originally Posted by A.A.M. View Post
    Лучше-то оно, конечно, лучше, но не всегда и не везде возможно, ведь на S60 3rd ed. SQLite официально не поддерживается к сожалению.
    Symbian SQL (он же SQLLite) вшит уже в Symbian 9.3. А для Symbian 9.2 существует плагин в виде sis файла. По крайней мере когда-то существовал.
    Кстати, наткнулся на свежую книжку по Symbian SQL тут.

  13. #13
    Registered User Mutronics's Avatar
    Join Date
    Jan 2010
    Posts
    17
    Quote Originally Posted by truf View Post
    Symbian SQL (он же SQLLite) вшит уже в Symbian 9.3. А для Symbian 9.2 существует плагин в виде sis файла. По крайней мере когда-то существовал.
    Кстати, наткнулся на свежую книжку по Symbian SQL тут.
    Книга наверное хорошая, только платная.
    А может кто подскажет, есть еще одна проблема, задумка готова и работает, остался интерфейс.
    Code:
        for(TInt i=0;i<10;i++)
        	{
        CRichText* richtext = iRichText1->RichText();
        
        CParaFormat* pf = new ( ELeave ) CParaFormat;
        CleanupStack::PushL( pf );
        if ((i%2)==1){
        pf->iFillColor = KRgbRed;
        }else{
        pf->iFillColor = KRgbBlue;
        }
        
        TParaFormatMask mask;
        mask.SetAttrib( EAttFillColor );
        _LIT( KText, "abcd" );
        richtext->InsertL( 0, KText );
        TInt paraLen;
        TInt fiChPos;
        fiChPos = richtext->CharPosOfParagraph( paraLen, i );
        richtext->ApplyParaFormatL( pf, mask, fiChPos, paraLen );
        CleanupStack::Pop();
    
        richtext->AppendParagraphL();
        
        iRichText1->ActivateL();
        iRichText1->DrawNow();
    По сути тут идет расцветовка параграфов, проблема в том, что текст идет только в первый параграф.

  14. #14
    Nokia Developer Moderator truf's Avatar
    Join Date
    Jun 2007
    Location
    Moscow, Russia
    Posts
    1,355
    На сколько я помню, CRichText за символ нового параграфа принимает не "\n", а "\u20292". Но можно еще попробовать "\f" или "\r".

  15. #15
    Registered User Mutronics's Avatar
    Join Date
    Jan 2010
    Posts
    17
    Quote Originally Posted by truf View Post
    На сколько я помню, CRichText за символ нового параграфа принимает не "\n", а "\u20292". Но можно еще попробовать "\f" или "\r".
    Похоже это переход строки (он мне просто растянет вниз первый параграф) тут проблема в коде, нужно чтобы в каждый созданный параграф был записан текст.
    А вообще было бы лучше сделать HTML парсинг, только как, это мой первый проект.

Similar Threads

  1. Проблемы с WaitForRequest
    By BaD.P1nG in forum Russian Developer Forum - Форум Российских разработчиков
    Replies: 17
    Last Post: 2009-08-04, 06:13
  2. Проблемы со звуком
    By maklersha50 in forum Russian Developer Forum - Форум Российских разработчиков
    Replies: 1
    Last Post: 2009-02-10, 20:44
  3. проблемы с установкой Nokia Series 40 Theme Studio 2.2 на ХР
    By RAMILKA in forum Russian Developer Forum - Форум Российских разработчиков
    Replies: 1
    Last Post: 2009-01-31, 12:00
  4. 2 проблемы с CEikEdwin ReadOnly
    By JBAK in forum Russian Developer Forum - Форум Российских разработчиков
    Replies: 0
    Last Post: 2008-02-29, 08:32
  5. Проблемы с CaptureKeyXXXXX
    By truf in forum Russian Developer Forum - Форум Российских разработчиков
    Replies: 1
    Last Post: 2008-02-07, 12:16

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Nokia Developer aims to help you create apps and publish them so you can connect with users around the world.

京ICP备05048969号  © Copyright Nokia 2013 All rights reserved