Good to see you've found your own solution
I am still confused though, because surely you could resolve this just by removing the default assignments, rather than changing field type to VARCHAR(255)?
Consider your original BLOB/TEXT column error:
Quote:
An error occurred trying to update the database
BLOB/TEXT column 'long_desc' can't have a default value
The field quoted is 'long_desc', which is from phpbb_downloads table, and indeed it has a default assignment. Here is the create table for this from the icy 12027 mysql_schema.sql:
Quote:
CREATE TABLE phpbb_downloads (
id INT(11) auto_increment NOT NULL,
description VARCHAR(255),
file_name VARCHAR(255) DEFAULT '',
klicks INT(11) DEFAULT '0',
free TINYINT(1) DEFAULT '0',
extern TINYINT(1) DEFAULT '0',
long_desc TEXT DEFAULT '',
sort INT(11) DEFAULT '0',
cat INT(11) DEFAULT '0',
hacklist TINYINT(1) DEFAULT '0',
hack_author VARCHAR(255) DEFAULT '',
hack_author_email VARCHAR(255) DEFAULT '',
hack_author_website TINYTEXT DEFAULT '',
hack_version VARCHAR(32) DEFAULT '',
hack_dl_url TINYTEXT DEFAULT '',
test varchar(50) DEFAULT '',
req TEXT DEFAULT '',
todo TEXT DEFAULT '',
warning TEXT DEFAULT '',
mod_desc TEXT DEFAULT '',
bbcode_uid VARCHAR(10) DEFAULT '',
mod_list TINYINT(1) DEFAULT '0',
file_size BIGINT(20) NOT NULL DEFAULT '0',
change_time INT(11) DEFAULT '0',
add_time INT(11) DEFAULT '0',
rating SMALLINT(5) DEFAULT '0' NOT NULL,
file_traffic BIGINT(20) NOT NULL DEFAULT '0',
overall_klicks INT(11) DEFAULT '0',
approve TINYINT(1) DEFAULT '0',
add_user MEDIUMINT(8) DEFAULT '0',
change_user MEDIUMINT(8) DEFAULT '0',
last_time INT(11) DEFAULT '0',
down_user MEDIUMINT(8) DEFAULT '0' NOT NULL,
thumbnail VARCHAR(255) DEFAULT '' NOT NULL,
broken TINYINT(1) NOT NULL DEFAULT 0,
PRIMARY KEY (id)
);
As you can see it does have a default value, and there are plenty of other TEXT fields with default assignments in the same table. However, before this table is created, there are plenty of tables with TEXT fields, which I take it didn't produce errors, since you got though up to the downloads table. A good example is:
Quote:
CREATE TABLE phpbb_ajax_shoutbox (
shout_id MEDIUMINT(9) UNSIGNED NOT NULL AUTO_INCREMENT,
user_id MEDIUMINT(8) NOT NULL,
shouter_name VARCHAR(30) NOT NULL default 'guest',
shout_text TEXT NOT NULL,
shouter_ip VARCHAR(8) NOT NULL default '',
shout_uid VARCHAR(10) NOT NULL default '',
shout_time INT(11) NOT NULL,
PRIMARY KEY ( shout_id )
);
So it seems possible to generate a text filed, without limiting it to VARCHAR(255), just by removing the default assignment (BTW the problem here would be that if you were entering the text into those fields, if you went over the limit of 255 characters, you might get a mysql server error, and also the text/data would be cut off - probably not a big problem for the tables in question, unless somebody had a download which needed a lot of explaining!).
The interesting point here though is that if you use the query SHOW CREATE TABLE phpbb_downloads on a MYSQL server which installed the above phpbb_downloads without a problem (so not yours

) then you see these TEXT fields with the default values
missing!...
Quote:
Result from SHOW CREATE TABLE icy_downloads:
CREATE TABLE `icy_downloads` (
`id` int(11) NOT NULL auto_increment,
`description` varchar(255) default NULL,
`file_name` varchar(255) default '',
`klicks` int(11) default '0',
`free` tinyint(1) default '0',
`extern` tinyint(1) default '0',
`long_desc` text,
`sort` int(11) default '0',
`cat` int(11) default '0',
`hacklist` tinyint(1) default '0',
`hack_author` varchar(255) default '',
`hack_author_email` varchar(255) default '',
`hack_author_website` tinytext,
`hack_version` varchar(32) default '',
`hack_dl_url` tinytext,
`test` varchar(50) default '',
`req` text,
`todo` text,
`warning` text,
`mod_desc` text,
`bbcode_uid` varchar(10) default '',
`mod_list` tinyint(1) default '0',
`file_size` bigint(20) NOT NULL default '0',
`change_time` int(11) default '0',
`add_time` int(11) default '0',
`rating` smallint(5) NOT NULL default '0',
`file_traffic` bigint(20) NOT NULL default '0',
`overall_klicks` int(11) default '0',
`approve` tinyint(1) default '0',
`add_user` mediumint(8) default '0',
`change_user` mediumint(8) default '0',
`last_time` int(11) default '0',
`down_user` mediumint(8) NOT NULL default '0',
`thumbnail` varchar(255) NOT NULL default '',
`broken` tinyint(1) NOT NULL default '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
So what we have here is some perhaps unanticipated behaviour when creating tables: MySQL usually removes the default assignment on text fields, however in your case it doesn't - perhaps there is an option in the MySQL server installation that enables this? Or perhaps this is a particular problem with the windows version of MySQL?