You can use quite a few lights without a really serious affect on performance and using a lighting system like you described is a great way to minimise the number of lights to something sensible. It depends on your system but you won't be able to use more than around 8 lights most of the time anyway.
I would suggest trying to use no more than about 4 lights and store the information for all of the lights in a UDT array:
eg.
type lux
posX as float
posY as float
posZ as float
range as float
color as integer
endtype
dim lights(100) as lux
...for 100 lights.