Я пытаюсь вставить некоторые данные от MySQL до SQL Server. Я вывел таблицу MySQL к текстовому файлу, поскольку SQL вставляет операторы. Я могу вставить его в SQL Server хорошо, но возвраты каретки вставляют как \r\n, а не как управляющие последовательности. Как я могу заменить строки \r\n в MySQL, вставляют операторы так, чтобы они закончили как возвраты каретки в SQL Server?
Необходимо выполнить поиск в потоке, как и вы, затем вызвать DiscardBufferedData
в StreamReader
. Документация здесь :
Edit: Add code example:
Stream s = new MemoryStream();
StreamReader sr = new StreamReader(s);
// later... after we read stuff
s.Position = 0;
sr.DiscardBufferedData(); // reader now reading from position 0
-121--940879- Middleware является предпочтительным способом выполнения подобных действий на основе «каждого запроса». Например, вот простой бит промежуточного программного обеспечения, чтобы добавить тот же самый (пример) заголовок P3P к каждому ответу Джанго генерирует:
В settings.py:
P3P_COMPACT = 'policyref="http://www.example.com/p3p.xml", CP="NON DSP COR CURa TIA"'
MIDDLEWARE_CLASSES += ('myapp.middleware.P3PHeaderMiddleware',)
В myapp/middleware.py:
from django.conf import settings
class P3PHeaderMiddleware(object):
def process_response(self, request, response):
response['P3P'] = getattr(settings, 'P3P_COMPACT', None)
return response
Вы также можете получить аналогичный эффект в одном представлении, установив заголовок P3P в ответе:
def my_view(request):
response = render_to_response('my_template.html')
response['P3P'] = 'CP="NON DSP COR CURa TIA"'
return response
Чтобы немного расширить тему, cookie и заголовки, такие как заголовок P3P, отправляются одновременно, как часть ответа; фактически, под колпаком печенье устанавливается с другим заголовком ответа. Заголовок файла cookie можно просмотреть с помощью завитка:
$ curl --head http://www.google.com/
HTTP/1.1 200 OK
Date: Wed, 13 Jan 2010 00:04:59 GMT
Expires: -1
Cache-Control: private, max-age=0
Content-Type: text/html; charset=ISO-8859-1
Set-Cookie: PREF=ID=d2c09762c479f94e:TM=1263341099:LM=1263341099:S=oJby3NpU4RsRfuYa; expires=Fri, 13-Jan-2012 00:04:59 GMT; path=/; domain=.google.com
Set-Cookie: NID=30=kdKrd5e-u6Xs7cUe3p4eaNDtv6SO88uBL5v6_M1XMTSRmkh7okxrWLOm-l_uZdN37PxQIe4dBlekFFVCpTFXGyIDlUrz1hEwhgVLvXfIik_VeVWGmWzKbA5qu_Zq0sOi; expires=Thu, 15-Jul-2010 00:04:59 GMT; path=/; domain=.google.com; HttpOnly
Server: gws
X-XSS-Protection: 0
Transfer-Encoding: chunked
-121--2477039- Единственный способ - заменить \r\n
на '+ CHAR (13) + CHAR (10) +'
.
Просто замените экранирующую последовательность \r\n на перевод строки. Пример:
select 'This is
a multi-line
string'