@ Томпсон я пытался, не повезло :(

се еще нужно решить эту проблему :(

Я запускаю программу с именем QMS в Windows XP, чтобы распечатать билет для пациента. Он использует Access в качестве базы данных. Я понимаю, что в этой базе данных есть имя таблицы rData. Когда кому-то нужно распечатать билет, он вставит новую строку в эту таблицу, и столбец Ticketno будет плюс один.

Вы можете видеть на картинке выше, что он вставил новую строку с Ticketno = 258 и принтер распечатал билет 258 для пациента.

Далее я устанавливаю Wamp на этот компьютер и использую php для вставки в эту таблицу, когда захочу. Вот мой код для вставки:

$dbName = "E:\\2.mdb";
if (!file_exists($dbName)) {
    die("Could not find database file.");
}
try {
    $db = new PDO("odbc:DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=$dbName; Uid=; Pwd=;");
} catch (PDOException $e) {
    print "Error!: " . $e->getMessage() . "<br/>";
    die();
}
$sql = "SELECT TOP 1 Ticketno FROM rdata WHERE ServiceId = 1 ORDER BY ID DESC";
$result = $db->query($sql);
$row = $result->fetch();
$num = $row['Ticketno']+1;
if(isset($_POST['submit'])){
    $sql = "INSERT INTO rdata(ServiceID, Ticketno, TicketFlag, TicketChain) VALUES(1,".$num.",0,';01')";
    $result = $db->query($sql);
}

После запуска этого кода я открываю файл через Microsoft Access и смотрю на таблицу rData. Я вижу, что вставлена ​​новая строка (в данном случае Ticketno = 259). И я нажимаю кнопку печати с надеждой, что она напечатает билет с номером = 260.

Но, он по-прежнему печатает билет 259 и вставляет в rData строку с Ticketno = 259, теперь у меня есть 2 строки с Ticketno = 259. Кажется, программа игнорирует мой запрос.

Я удалил эти 2 строки и делаю снова. Однако, прежде чем нажать кнопку печати, я закрываю программу и снова открываюсь. Сейчас на нем распечатывается билет 260. Может кто-нибудь объяснить это мне? Что я должен делать?

Ответы на вопрос(0)

Ваш ответ на вопрос