Internal batteries have no effect on the trading, since Firered and Leafgreen doesn't have any.
Maybe on of your Gameboy/ plug is broken... if there is any corrosion, put rubbing alcohol on a Q-tip (Not too much) and rub the plugs.
If this doesn't work, try with other gameboys.
Or you are probably using the wrong settings.
Also, in my Firered, there were two places where you could trade: One is for the Wireless Adapter only and the other is for battles and trading with cable.
I don't know about Ruby/sapphire... but in Emerald, it was the same thing.
And search till you find the problem!