Установка Timeout для SQL Server

Добавление к файлу

out_file не является списком. Вы должны использовать метод write() для записи в файл. Также print(out_file) печатает представление объекта, а не содержимое файла.

Просто замените out_file.append() на out_file.write():

score = '11'
gametag = 'Griminal'
with open("scores.txt", "a") as out_file:
    out_string = str(score) + " points from: " + str(gametag) + "\n"
    print(out_string)
    out_file.write(out_string)

Сортировка файла

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

Вот как вы можете прочитать и распечатать результат сортировки:

with open("scores.txt", "r") as scores:
    lines = scores.readlines() #reads all the lines

sortedlines = sorted(lines, key=lambda x: int(x.split()[0]), reverse=True) #be sure of the index on which to sort!
for i in sortedlines[:5]: #the first 5 only
    print(i)

x.split() разбивает каждую строку на список слов, используя пробелы в качестве разделителя. Здесь я использую индекс 0, потому что после предыдущего ввода out_string = str(score) + " points from: " + str(gametag) + "\n" оценка находится в первом элементе списка.

Если вам нужно снова сохранить файл, вы можете перезаписать его, написав в нем sortedlines.

with open("scores.txt", "w") as out_file: #mode "w" deletes any previous content
    for i in sortedlines:
        out_file.write(i)
24
задан jessehouwing 29 December 2016 в 20:15
поделиться

2 ответа

Да, есть два типа тайм-аута, которые можно установить

  1. Тайм-аут соединения
  2. Тайм-аут команды

Оба значения по умолчанию равны 30 секундам в VBA, .net и т. Д.

13
ответ дан Community 28 November 2019 в 22:56
поделиться

As gbn already mentioned, there are two types of timeouts:

1) Connection Timeout: this is controlled by your connection string:

Data Source=.;Initial Catalog=TestDB;
   Trusted_Connection=true;Asynchronous Processing=true

If you add a Connect Timeout=120 to this string, your connection will try for 120 seconds to get opened and then aborts.

Data Source=.;Initial Catalog=TestDB;
   Trusted_Connection=true;Asynchronous Processing=true;
   Connect Timeout=120;

2) Command timeout: for each command, you can also specify a timeout - ADO.NET will wait for that amount of time before cancelling out your query. You specify that on the SqlCommand object:

    using (SqlCommand RetrieveOrderCommand = new SqlCommand())
    {
       RetrieveOrderCommand.CommandTimeout = 150;
    }
43
ответ дан 28 November 2019 в 22:56
поделиться