Psycopg2, Postgresql, Python: быстрый способ массовой вставки

Response.ContentType = contentType;
HttpContext.Current.Response.AddHeader("Content-Disposition", "inline; filename=" + fileName);
Response.BinaryWrite(fileContent);

И

<asp:LinkButton OnClientClick="openInNewTab();" OnClick="CodeBehindMethod".../>

В javaScript:

<script type="text/javascript">
    function openInNewTab() {
        window.document.forms[0].target = '_blank'; 
        setTimeout(function () { window.document.forms[0].target = ''; }, 0);
    }
</script>

Позаботьтесь о сбросе цели, в противном случае все остальные вызовы, такие как Response.Redirect, откроются на новой вкладке , что может быть не то, что вы хотите.

38
задан Community 23 May 2017 в 11:47
поделиться

3 ответа

Да, я бы проголосовал за КОПИРОВАНИЕ, при условии, что вы можете записать файл на жесткий диск сервера (а не на диск, на котором запущено приложение), поскольку КОПИРОВАНИЕ будет считываться только с сервера.

14
ответ дан 27 November 2019 в 01:53
поделиться

(Больше для полноты информации на самом деле)

Я задал парню безопасности .Net этот вопрос на конференции некоторое время назад. Его ответ состоял в том, что это технически возможно, но он никогда не видел, чтобы это было сделано (и сообщить ему, если я это сделал и это сработало!).

Он предположил, что это можно сделать, создав собственный фильтр ISAPI и установив его в IIS. Фильтр ISAPI перехватит запросы и в основном выполнит задание, выполняемое IIS при использовании интегрированной аутентификации, но вернется к использованию форм, если этого не было. Это включало некоторую сложную логику вызова/ответа в фильтре. Это было для IIS6, так что может быть иначе в IIS7.

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

-121--1078663-

Рекурсивные функции упрощают кодирование решений, имеющих отношение повторения .

Например, факториальная функция имеет отношение повторения:

 factorial(0) = 1
 factorial(n) = n * factorial(n-1)

Ниже я реализовал факториал с использованием рекурсии и закольцовывания.

Рекурсивная версия и отношение повторения, определенные выше, похожи и являются следовательно, легче читать.

Рекурсивный:

double factorial ( int n )
{
 return ( n ? n * factorial ( n-1 ) : 1 );
}

Закольцовывание:

double factorial ( int n )
{
 double result = 1;
 while ( n > 1 )
 {
  result = result * n;
  n--;
 }
 return result;
}

Еще одна вещь:

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

-121--4554022-

Существует новое руководство psycopg2 , содержащее примеры для всех опций.

Наиболее эффективной является опция COPY . Затем executemany. Затем выполнить с pyformat.

10
ответ дан 27 November 2019 в 01:53
поделиться

Также можно использовать clojure.lang.RT/baseLoader

(defn serve-public-resource [path]
  (.getResourceAsStream (clojure.lang.RT/baseLoader) (str "public/" path))) 
-121--1379898-

Можно использовать опцию «git push» с параметром «force»

git push -f

через manpages:

  -f, --force
Обычно команда отказывается обновить удаленную ссылку, которая не является предком локальной ссылки
используется для перезаписи. Этот флаг отключает проверку. Это может привести к тому, что удаленный репозиторий
потерять обязательства; используйте его с осторожностью.
-121--4378637-

Первый и второй используются вместе, а не отдельно. Третий вариант будет наиболее эффективным с точки зрения сервера, поскольку сервер будет выполнять всю тяжелую работу.

1
ответ дан 27 November 2019 в 01:53
поделиться
Другие вопросы по тегам:

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