Несколько более надежный метод, который мне нужно было использовать недавно:
- (void) dismissKeyboard {
NSArray *windows = [UIApplication sharedApplication].windows;
for(UIWindow *window in windows) [window endEditing:true];
// Or if you're only working with one UIWindow:
[[UIApplication sharedApplication].keyWindow endEditing:true];
}
Я обнаружил, что некоторые другие «глобальные» методы не работают (например, UIWebView
и WKWebView
отказались в отставку).
Я не могу придумать, как можно объединить SELECT с UPDATE в SQL 2000 (хотя в 2005 и новее предложение OUTPUT доступно) . Однако похоже, что вы получаете три строковых значения (fieldList, tableListAndJoins, whereCond), которые объединяются вместе с «SELECT», «FROM» и «WHERE», и предполагая, что они не выполняют серьезного обнаружения кода, подобного инструкциям SQL, вы могли бы собрать что-то вроде этого:
fileList = "NULL where 1 = 0; UPDATE MyTable set MyColumn = 'Whatever' where SomeColumn = 'Criteria'; SELECT MyColumn"
tableListAndJoins = "MyTable"
whereCond = "SomeColumn = 'Criteria'"
[Точки с запятой на самом деле являются необязательными и могут даже не работать в SQL 2000 - они просто показывают, где заканчивается одна команда и начинается следующая]
Обратной стороной этого является то, что вы получите обратно две команды. наборы данных. Первый будет пустым набором из одного столбца (псевдоним NULL, если вы хотите указать имя столбца), а данные, которые вы хотите, будут во втором наборе. Возможны другие обходные пути, в зависимости от того, как используются эти три значения и как обнаруживаются ошибки. (Позвольте этому первому запросу генерировать ошибку и надеяться, что обновление и второй запрос пройдут?)
Я не уверен, что понимаю ограничения вашей ситуации, но можете ли вы просто запустить два оператора одновременно, например:
string sql = "update MyTable set x=y;select x from MyTable;";
Попробуйте использовать динамический sql в хранимой процедуре, как указано в последнем ответе здесь
Связано, чтобы оригинальный автор мог получить кредиты, которых он / она заслуживает, и, надеюсь, будет полезно для вас.
И поскольку вы хотите, чтобы SELECT перед ОБНОВЛЕНИЕМ, вы можете изменить динамический sql, как в опубликованной мной ссылке, чтобы сначала выполнить SELECT.
Будет сохраненная функция быть вариантом? Вы можете вызывать их более плавно (по крайней мере, в MySQL), чем хранимые процедуры - вместо «call PROCEDURE_NAME (x)» вы можете просто использовать «SELECT FUNCTION_NAME (x)».
Я предполагаю, что с XP вы должны написать свой собственный XP, чтобы выполнить обновление и как-то включить его в запрос. Сработает это или нет и где в запросе он должен быть запущен до того, как SQL посмотрит ваши данные, полностью вне меня.
Похоже, вы пробовали практически все, что я бы попробовал. Я сочувствую вам, потому что, вероятно, будет довольно легко обновить состояние после , которое вы выполнили при выборе.