PostgreSQL: связь между типами, заданными с заполнителями, и типами в параметре PQexecPrepared () paramValues

Если то, что вы пытаетесь сделать, это позволить пользователям добавлять закладки / обмениваться страницами, и вам не нужно, чтобы это был именно правильный URL-адрес, и вы не используете хеш-привязки для чего-либо еще, тогда вы можете сделать это в двух частях; вы используете обсуждаемое выше location.hash, а затем реализуете проверку на домашней странице, чтобы искать URL-адрес с хеш-якорем в нем и перенаправлять вас на последующий результат.

Например:

1) Пользователь находится на www.site.com/section/page/4

2) Пользователь выполняет какое-либо действие, которое изменяет URL-адрес на www.site.com/#/section/page/6 (с хешем). Скажем, что вы загрузили правильный контент для страницы 6 на страницу, поэтому помимо хэша пользователь не слишком беспокоится.

3) Пользователь передает этот URL кому-то другому или заносит в закладки

4) Кто-то другой или тот же пользователь в более поздний срок переходит к www.site.com/#/section/page/6

5) Код на www.site.com/ перенаправляет пользователя на www.site.com/section/page/6, используя что-то вроде этого :

if (window.location.hash.length > 0){ 
   window.location = window.location.hash.substring(1);
}

Надеюсь, это имеет смысл! Это полезный подход для некоторых ситуаций.

1
задан Laurenz Albe 18 January 2019 в 16:56
поделиться

1 ответ

Если вы отправили нетипизированные строковые аргументы, как в вашем примере, они будут иметь тип unknown и преобразованы в правильный тип, если это возможно. Это очень похоже на строковые литералы в операторах SQL.

Нет необходимости приводить к text в операторе SQL. Мне было бы любопытно, какой тип col, если вы считаете, что этот бросок необходим.

Если вы хотите передать text[] в текстовом формате, просто используйте его строковое представление, например

{first element,two,three}

Это также будет работать для целых чисел и других типов; просто используйте текстовое представление значения.

Вы также можете использовать аргумент paramTypes для PQexecParams, чтобы указать, какой тип это явно. Возможные значения находятся в столбце oid в pg_type, и они постоянны для типов систем.

0
ответ дан Laurenz Albe 18 January 2019 в 16:56
поделиться
Другие вопросы по тегам:

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