[Gambas-user] type mismatch: wanted integer, got string instead

Dimitris Anogiatis dosida at ...626...
Tue Aug 25 08:52:27 CEST 2009


one small correction in this line
if sRain = "x" then iRain = 0.4 'or anything else you want to make it

it should be

if sRain = "x" then iRain = 40 'or anything else you want to make it

On Tue, Aug 25, 2009 at 12:50 AM, Dimitris Anogiatis <dosida at ...626...>wrote:

> MSulchan,
>
> in http://www.gambasdoc.org/help/cat/datatypes you will find a breakdown
> of the available data types
> supported by Gambas2 and in http://www.gambasdoc.org/help/cat/conv the
> available data conversion
> functions. In this section of Gambasdoc
> http://www.gambasdoc.org/help/cat/type   you will also find
> datatype functions that can help you with the special cases... ie IsNULL
> will detect if your variable
> is null or not.
>
> Now as for a strategy to deal with the floats...
>
> Depending on the floating number's floating part (meaning if the number's
> floating part is no more than 2 digits ie 0.90)
> seeing as it represents percentage you could always multiply them * 100 and
> turn them into an integer. If of course
> you get a large number like 0.9999582694 multiplying it by 100 and turning
> that into an integer, you'll end up with
> rounded data. The other approach is to use a float type variable but then
> you need to change your code to handle
> floats.
>
> With this new data about your project's input
>
> You could try something like this...
>
> '------------------------------------------------------------------------------------------------------------------------------------------------------
> 'if the value of sRain is NOT a null
>
> if IsNull(Val(sRain)) = False  THEN
>
>    'if the number is an integer just assign it to the iRain variable
>    if IsInteger(Val(sRain)) = TRUE THEN
>       iRain = Val(sRain)
>
>      'if it's not an integer
>    ELSE
>       'check to see if it's a string
>       SELECT CASE isString(sRain)
>          CASE True
>
>              'if it's a string check here to see which one of the
>              'designated strings you have and assign a value to iRain
>
>              if sRain = "x" then iRain = 0.4 'or anything else you want to
> make it
>              if sRain = "-" then iRain = 0 'or anything else you want to
> make it
>          CASE False
>
>              ' if it's neither an integer nor a string, convert it into an
> integer multiply it by 100 turn it assign it to the iRain variable
>              iRain = Val(sRain) * 100
>          CASE ELSE
>       END SELECT
>    ENDIF
>
> 'if the value of sRain is a null then just assign a negative integer to
> iRain
> ELSE
>   iRain = -1
> ENDIF
>
> '------------------------------------------------------------------------------------------------------------------------------------------------------
>
> I hope this helps a bit more
>
> Regards
> Dimitris
>
>
> On Mon, Aug 24, 2009 at 11:40 PM, MSulchan Darmawan <bleketux at ...626...>wrote:
>
>> Pada Mon, 24 Aug 2009 23:00:07 -0600
>> Dimitris Anogiatis <dosida at ...626...> menulis:
>>
>> > this way iRain would always have an integer and you wouldn't have to
>> > worry about
>> > the mismatch error... assuming "0", "1", "2", "x", "-" and NULL are
>> > the only values
>> > used in your database.
>>
>> Thanks Dimitris and JY,
>>
>> Unfortunately, the possible values are more then that, it's just a
>> sample.
>> The values are amount of rainfall data, so it has numbers (0 to 400)
>> also with floating number 0.5, 1.7, and so on.
>> The field of old data on the database was set with string type, which
>> "x" represent as a value less then 0.5, "-" represent as no rain, and
>> NULL represent as no data.
>>
>> So, for temporary solution, I'll use TRY statement to exclude "x", "-",
>> and NULL, but the problem is with the floating number.
>> I don't know how to handle this yet.
>> any idea how to solve this ?
>>
>> thanks in advance,
>> Regards,
>> Sulchan
>>
>>
>> ------------------------------------------------------------------------------
>> Let Crystal Reports handle the reporting - Free Crystal Reports 2008
>> 30-Day
>> trial. Simplify your report design, integration and deployment - and focus
>> on
>> what you do best, core application coding. Discover what's new with
>> Crystal Reports now.  http://p.sf.net/sfu/bobj-july
>> _______________________________________________
>> Gambas-user mailing list
>> Gambas-user at lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/gambas-user
>>
>>
>



More information about the User mailing list