В текстовом поле есть параметр onChanged: вы можете использовать его для передачи функции
TextField(
keyboardType: TextInputType.number,
onChange: onChange
decoration: InputDecoration(
hintText: 'Enter the number'
),
)
на вашем главном экране, используйте это:
void onChange(String text) {
//do stuff here with text like maybe setState
}
Используя метод, найденный здесь , следующий скрипт генерирует SELECT для всех ((n) var) char столбцов в данной базе данных. Скопируйте / вставьте вывод, удалите самый последний «союз» и выполните .. Вам нужно заменить ЗДОРОВЫЙ ЗДЕСЬ на строку, которую вы ищете.
select
'select distinct ''' + tab.name + '.' + col.name
+ ''' from [' + tab.name
+ '] where [' + col.name + '] like ''%MISSPELLING HERE%'' union '
from sys.tables tab
join sys.columns col on (tab.object_id = col.object_id)
join sys.types types on (col.system_type_id = types.system_type_id)
where tab.type_desc ='USER_TABLE'
and types.name IN ('CHAR', 'NCHAR', 'VARCHAR', 'NVARCHAR');
Вы можете использовать курсор и представления sys.tables / sys.columns для их просмотра. Дайте мне минуту, и я дам вам код.
Обновление: Вот вы:
declare @col_name nvarchar(50)
declare @sql nvarchar(max)
declare @tbl_name nvarchar(50)
declare @old_str nvarchar(50)
declare @new_str nvarchar(50)
set @old_str = 'stakoverflow'
set @new_str = 'StackOverflow'
declare fetch_name cursor for
select
c.name,
t.name
from
sys.columns c
inner join sys.tables t on c.object_id = t.object_id
inner join sys.types y on c.system_type_id = y.system_type_id
where
y.name like '%varchar'
or y.name like '%text'
open fetch_name
fetch next from fetch_name into @col_name, @tbl_name
while @@fetch_status = 0
begin
set @sql = 'UPDATE ' + @tbl_name + ' SET ' +
@col_name + ' = replace(' +
@col_name + ',''' +
@old_str + ''',''' +
@new_str + ''')'
exec sp_executesql @sql
fetch next from fetch_name into @col_name
end
close fetch_name
deallocate fetch_name
Это даст вам все, что вам нужно. Он извлекает из вашей базы данных столбцы varchar, nvarchar, text и ntext, циклически перебирает столбцы и обновляет каждый из них.
Конечно, вы также можете сделать это, чтобы создать объединенный оператор SQL и выполнить одно большое обновление в конец, но эй, это ваши предпочтения.
И для протокола, я не люблю курсоры, но так как мы имеем дело с несколькими столбцами, а не миллионами строк, я в порядке с этим.
Версия SQL Server 2000 приведенного выше сценария (от edosoft):
select
'select distinct ''[' + tab.name + ']'' as TableName, ''[' + col.name + ']'' as ColumnName'
+ ' from [' + users.name + '].[' + tab.name
+ '] where UPPER([' + col.name + ']) like ''%MISSPELLING HERE%'' union '
from sysobjects tab
join syscolumns col on (tab.id = col.id)
join systypes types on (col.xtype = types.xtype)
join sysusers users on (tab.uid = users.uid)
where tab.xtype ='U'
and types.name IN ('char', 'nchar', 'varchar', 'nvarchar');