Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di echoweb
    Registrato dal
    Sep 2008
    Messaggi
    419

    [C++] Query Oracle

    C++ Builder 5
    Salve a tutti.

    Su un oggetto MEMO, vado a scrivere l'esito di una query ottenuta da db.
    Il codice è il seguente, e sembra funzionare.

    Scrivo sembra perchè, se l'esito supera le 100 righe, il programma rimane tipo in "stanby" e mi tocca terminare l'applicazione.

    Se le righe sono una cinquantina, funziona tutto.

    Forse ho sbagliato a gestire il richiamo della query.

    Grazie.

    codice:
    SqlUtente -> Close();
    SqlUtente -> SQL -> Clear();
    SqlUtente -> SQL -> Add("select * from tabella ");
    
    SqlUtente -> Open();
    SqlUtente -> First();
    
    if (!SqlUtente->Eof)
    {
      while (SqlUtente->RowsAffected != 0)//  !SqlUtente->Eof)
      {
              strcpy(app_appoggio,"");
              appoggio = "";
    
              appoggio = SqlUtente -> FieldByName("NOME_UTENTE")-> AsString;
              strcpy(app_appoggio,appoggio.c_str());
              
    		  Memo1 -> Text = Memo1 -> Text + app_appoggio + "\r\n";
              SqlUtente -> Next();
      }
    }
    else
    {
    
    }
    SqlUtente -> Close();

  2. #2
    Non riesci ad usare il debugger?
    Il campo "NOME_UTENTE" è not null nella tua tabella?
    Sicuro che "app_appoggio" sia sufficientemente grande da digerire cio' che gli passi con strcpy?

  3. #3
    Utente di HTML.it L'avatar di echoweb
    Registrato dal
    Sep 2008
    Messaggi
    419
    Originariamente inviato da MacApp
    Non riesci ad usare il debugger?
    non frainterdermi, ma spero che "non riesci ad usare il debbugger" non sia ironico....

    La query funziona, ma se i record da visualizzare superano i 100 elementi, l'applicativo rimane come in "standbay".

    Spero di essermi spiegato.

    Secondo me il problema è qui:

    codice:
    while (SqlUtente->RowsAffected != 0)//  !SqlUtente->Eof)
      {

  4. #4
    Originariamente inviato da echoweb
    non frainterdermi, ma spero che "non riesci ad usare il debbugger" non sia ironico....
    non hai risposto a nessuna delle domande che ti ho fatto.
    - Se puoi usare il debugger (non sempre e' possibile) allora dovresti essere in grado di determinare il punto in cui va in standby (mentre e' in standby il processo consuma CPU?).
    - Se il campo NOME_UTENTE non e' "not null" allora potrebbe darsi che l'oggetto che usi per accedere al DB lanci un eccezione che non viene gestita correttamente.
    - Se "app_appoggio" non è sufficiente mente grande, allora il comportamento è indefinito.

    Se
    codice:
    while (SqlUtente->RowsAffected != 0)
    fosse errata allora dovresti avere problemi anche con pochi risultati, ma ok altro non posso dire, non conoscendo ne' il resto del codice ne' l'oggetto che usi per accedere al DB.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.