crash at shockwave
    Tonigs, Nils 
    ntonigs at ukaachen.de
       
    Fri Sep  4 04:31:36 CDT 2009
    
    
  
Hi Ruslan,
Hi Kirill,
i use v4md 4.2 for windows with director 10.1 and valentina office server 4.2.
now, it seems that I have the same problem I had posted on 16.06.09, but this time at shockwave:
the statement getMedia() crash the browser with the alert:
"Die Anweisung in '0x6805a74d' verweist auf Speicher in '0x839ae850'. Der Vorgang 'written' konnte nicht auf dem Speicher durchgeführt werden."
(The instruction in ' 0x6805a74d' refers to memory in ' 0x839ae850'. The procedure 'written' could not be accomplished on the memory)
If field of other types than BLOB are used, no error appears.
And here the lingo-script that causes the crash:
"...
      case TRUE of
          
        ( (NOT _global.g_o_dbCursor ) OR ( _global.g_o_dbCursor = VOID ) ):
          -- AUSNAHMEBEHANDLUNG
          -- NUR PHP mysql_free_result( l_result ) -- leert den arbeitsspeichern fuer ein neues abfrage-ergebnis
          l_aoh_objectData = FALSE
          
          
        ( objectP( _global.g_o_dbCursor ) ):
          l_int_anzahlResults = _global.g_o_dbCursor.recordCount
          
          put( l_int_anzahlResults )
          
          l_int_fieldCount = _global.g_o_dbCursor.fieldCount
          repeat with w = 1 to l_int_fieldCount
            
            l_sym_feldName = symbol( _global.g_o_dbCursor.field[ w ].name )
            
            put( "feld: " & l_sym_feldName & " ==> " )
            
            if ( l_int_anzahlResults = 0 ) then
              
              -- *** LEERER VCURSOR ***
              -- defaultwerte aus liste behalten
              -- vom medien-darsteller ein dublikat herstellen
              if ( l_sym_feldName = #binary_media ) then
                -- einen bilddarsteller für mediaItem erzeugen und speichern
                l_o_medienDarsteller = _movie.newMember( symbol( #bitmap ) )
                put( "DEFAULT darsteller für MEDIA ==> " & l_o_medienDarsteller )
                l_o_medienDarsteller.image = l_aoh_objectData[ l_sym_tabellenName ][ #binary_media ][ 1 ].image.duplicate()
                -- in defaultliste speichern
                l_aoh_objectData[ l_sym_tabellenName ][ #binary_media ][ 1 ] = l_o_medienDarsteller
              end if
              -- feld RECID
              if ( l_sym_feldName = #RecID ) then
                l_aoh_objectData[ l_sym_tabellenName ][ l_sym_feldName ][ 1 ] = VOID
              end if
              put( "defaultwert beibehalten" )
              
            else if ( l_int_anzahlResults > 0 ) then
              
              -- *** VCURSOR MIT DATEN ***
              -- wenn es binärdaten sind (BLOB-feld) ....
              if ( l_sym_feldName = #binary_media ) then
                -- einen bilddarsteller für mediaItem erzeugen und speichern
                l_o_medienDarsteller = _movie.newMember( symbol( #bitmap ) )
                put( "NEUR darsteller für MEDIA ==> " & l_o_medienDarsteller )
                -- bilddatei aus db-feld in temporaeren darsteller importieren
>>>>>>>>CRASH>>>>>>>>>>>>>  _global.g_o_dbCursor.field( w ).getMedia( l_o_medienDarsteller )                
                l_aoh_objectData[ l_sym_tabellenName ][ #binary_media ][ 1 ] = l_o_medienDarsteller
              else
                -- dann den wert aus dem VCursor in die meiner liste speichern
                dfghjk = g_o_dbCursor.field[ w ].value
                if NOT( dfghjk = VOID ) then
                  -- wert aus dbfeld übernehmen
                  l_aoh_objectData[ l_sym_tabellenName ][ l_sym_feldName ][ 1 ] = _global.g_o_dbCursor.field[ w ].value
                  put( l_sym_feldName & " ==> " & l_aoh_objectData[ l_sym_tabellenName ][ l_sym_feldName ] )
                end if
              end if
              
            end if
            
          end repeat
          
      end case
..."
And here my additionale description:
This script-segment will fill the fieldcontent of the VCusor-object (global variable) into a proplist called 'l_aoh_objectData' and is located in repeat-loop (not shown) the work with different sql-statements.
In case of a empty VCusor the proplist 'l_aoh_objectData' is prefilled with defaultvalues.
The exeption is the field 'binary_media' (type BLOB). This value will be stored in a castmember. The proplist only hold a reference to this member.
Sorry, but at shockwave I get no logs.
The last output at the messagewindow is "NEUR darsteller für MEDIA ==> (member 73 of castLib 1)" from the line befor the getMedia().
My tests with the example-script "Remote&Local" works well, of course it use no BLOB-fields.
Regards
Nils Tonigs
Audiovisuelles Medienzentrum
Medizinische Fakultät der RWTH Aachen
Pauwelsstr. 30
52074 Aachen
 
Tel.: +49-(0)241-80-89035
Fax: +49-(0)241-80-82561
E-Mail: ntonigs at ukaachen.de
    
    
More information about the Valentina
mailing list