Вызовите или BeginInvoke нельзя назвать на управлении, пока дескриптор окна не был создан

None

? ничего не значит для предложения MySQL WHERE =, только для нескольких внешних интерфейсов, таких как PHP stdlib и веб-фреймворки, такие как Rails.

? синтаксическая ошибка в:

CREATE TABLE t (s CHAR(1));
SELECT * FROM t WHERE s = ?;

, потому что она не определена, и в:

INSERT INTO t VALUES ('a');
INSERT INTO t VALUES ("?");
SELECT * FROM t WHERE s = '?';

она возвращает:

s
?

, таким образом, очевидно, без специальных смысл.

Пример Rails

В Rails, например, знак вопроса заменяется аргументом, заданным переменной языка программирования библиотеки (Ruby), например:

Table.where("column = ?", "value")

, и он автоматически цитирует аргументы, чтобы избежать ошибок и SQL-инъекций, создавая оператор вроде:

SELECT * FROM Table WHERE column = 'value';

. Цитата спасет нас в случае чего-то вроде:

Table.where("column = ?", "; INJECTION")

Подготовленные операторы MySQL 5.0

В MySQL 5.0 добавлена ​​функция подготовленной инструкции , которая имеет сходную семантику с вопросительным знаком в веб-фреймворках.

Пример из docs:

PREPARE stmt1 FROM 'SELECT SQRT(POW(?,2) + POW(?,2)) AS hypotenuse';
SET @a = 3;
SET @b = 4;
EXECUTE stmt1 USING @a, @b;

Выход:

hypotenuse
5

Они также вызывают специальные символы, как ожидалось:

PREPARE stmt1 FROM 'SELECT ? AS s';
SET @a = "'";
EXECUTE stmt1 USING @a;

Выход: [/ g 16]

s
'

21
задан blade3 4 November 2009 в 23:38
поделиться

6 ответов

Однажды у меня была такая же проблема с установкой пакета обновления. Единственное, что я смог найти, это повторить установку сразу после сбоя. Это заняло около пяти раз, но в итоге это сработало. Я думаю, что в установщике 64-битной Windows есть что-то странное.

0
ответ дан 29 November 2019 в 20:59
поделиться

Я вижу, что MS ответила на это. Это потому, что выпуск MSSSQL новее, чем SP. У них есть исправление, которое, очевидно, требует применения. О, радость!

http://support.microsoft.com/kb/975055

Затем вам нужно запросить исправление и дождаться отправки вам ссылки. Говорят 5 минут, но посмотрим.

2
ответ дан 29 November 2019 в 20:59
поделиться

На самом деле это не настоящее решение, но оно сработало у меня после 5-й попытки. Не уверен, что это имеет значение, но с 5-й попытки я свернул все остальные окна (так что настройка SQL была единственным окном, в фокусе которого находится фокус), поскольку проблема, похоже, связана с пользовательским интерфейсом.

Обновление: После преодоления Первая проблема, у меня возникла еще одна проблема, когда фактический компонент ядра базы данных не удалось установить без причины. Решением было перезапустить и повторить попытку.

Установщик x64, похоже, действительно содержит ошибки.

25
ответ дан 29 November 2019 в 20:59
поделиться

У меня работало закрытие всех открытых окон. определенно проблема пользовательского интерфейса с 64-битной версией.

0
ответ дан 29 November 2019 в 20:59
поделиться

У меня была та же ошибка, несколько раз раз пытался установить SQL Express 2008 x64 на 64-разрядный сервер 2008 R2 (VMWare), и я, наконец, заставил его работать, выполнив следующие действия:

Запустите установку, и когда она дойдет до точки, где появится окно безопасности с запросом если вы разрешаете установку для запуска, откройте временную папку. C: {GUID} и скопируйте эту папку (содержащую setup.exe и вспомогательные файлы) на свой рабочий стол.

Нажмите «ОК» в диалоговом окне безопасности, возможно, произойдет ошибка.

Как только диалоговое окно с ошибкой исчезнет, ​​просто запустите setup.exe из временного каталога на рабочем столе, и он заработает.

Надеюсь, это поможет кому-то другому.

~ Matt Heidenreich

1
ответ дан 29 November 2019 в 20:59
поделиться

У меня была такая же проблема, когда я устанавливал в Window 7. Единственное, что я смог найти, это то, что повторите попытку установки сразу после сбоя, и через некоторое время она сработала.

1
ответ дан 29 November 2019 в 20:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: