Director crashes
Tonigs, Nils
ntonigs at ukaachen.de
Fri Jun 26 02:10:41 CDT 2009
Hello Ruslan,
I change to the last version of V4MD 4.2 rc1 and of the Valentina Office Server (DEMO).
The behaviour is the same.
And here the lingo-script that causes the crash:
"...
-- sql-statement ausfuehren lassen
l_o_dbCursor = query( p_str_SQL, l_bol_DEBUG )
if CheckValError() then die( "Klasse c_v4_DBI: on select : FEHLER: kein result von QUERY !" )
case TRUE of
( (NOT l_o_dbCursor ) OR ( l_o_dbCursor = VOID ) ):
-- AUSNAHMEBEHANDLUNG
l_aoh_objectData = FALSE
( objectP( l_o_dbCursor ) ):
l_int_fieldCount = l_o_dbCursor.fieldCount
repeat with w = 1 to l_int_fieldCount
l_sym_feldName = symbol( l_o_dbCursor.field[ w ].name )
l_int_anzahlResults = l_o_dbCursor.recordCount
if ( l_int_anzahlResults = 0 ) then
-- *** empty VCURSOR ***
-- defaultwerte aus liste behalten
-- vom medien-darsteller ein duplikat herstellen
if ( l_sym_feldName = #binary_media ) then
-- einen bilddarsteller für mediaItem erzeugen und speichern
l_o_medienDarsteller = _movie.newMember( symbol( #bitmap ) )
l_o_medienDarsteller.image = l_aoh_objectData[ ii ][ #binary_media ].image.duplicate()
-- in defaultliste speichern
l_aoh_objectData[ ii ][ #binary_media ] = l_o_medienDarsteller
end if
else if ( l_int_anzahlResults > 0 ) then
-- *** VCURSOR MIT DATEN ***
-- wenn es binärdaten sind (BLOB-feld) ....
if ( l_sym_feldName = #binary_media ) then
-- den default-darsteller löschen
l_aoh_objectData[ ii ][ #binary_media ] = VOID
-- einen bilddarsteller für mediaItem erzeugen und speichern
l_aoh_objectData[ ii ][ #binary_media ] = _movie.newMember( symbol( #bitmap ) )
-- bilddatei aus db-feld in temporaeren darsteller importieren
>>>>>CRASH>>>>> l_o_dbCursor.field( w ).getMedia( l_aoh_objectData[ ii ][ #binary_media ] ) <<<<<<<<<<<<
else
-- dann den wert aus dem VCursor in die meiner liste speichern
dfghjk = l_o_dbCursor.field[ w ].value
if NOT( dfghjk = VOID ) then
-- wert aus dbfeld übernehmen
l_aoh_objectData[ ii ][ l_sym_feldName ] = l_o_dbCursor.field[ w ].value
end if
end if
end if
end repeat
end case
l_o_dbCursor = VOID
..."
And here my additionale description:
This script-segment will fill the fieldcontent of the VCusor-object 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.
And now the last lines of the logfile to the moment director crashes:
"...
* V4MD * : VCursor.field()...
PARAM: pThisCursor = 133612432
PARAM: index = 8
return res = 133572064
* V4MD * : VField.getMedia()...
PARAM: pThisField = 133572064
* V4MD * : VDatabase.close()...
PARAM: pThisDatabase = 133610972
return
* V4MD * : VConnection.close()...
PARAM: pThisConnection = 133562920
return
* V4MD * : Valentina.shutDownClient()...
Return
"
If you don't have a workaround I follow your hint and report this to Valentina Mantis.
Best 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