Tôi hiện đang làm việc để sửa đổi cơ sở dữ liệu Firebird v. 1.5.Đang cập nhật số phát hành giá trị máy phát điện
Cấu trúc cơ sở dữ liệu sẽ được sửa đổi các truy vấn đang chạy từ ứng dụng delphi sử dụng các thành phần cơ sở, vấn đề tôi đang gặp phải là tôi cần chạy nhiều truy vấn, một số trong đó bao gồm tạo trình tạo và cập nhật giá trị của trình tạo vấn đề là tôi cần phải đạt được điều này trong khi vài thắc mắc càng tốt, nhưng có vẻ như (ít nhất là với tôi) rằng điều này không thực sự có thể, những gì tôi đang cố gắng làm là như sau:
/* this command creates a generator to be used for table TABLENAME */
CREATE GENERATOR GEN_TABLENAME;
vì vậy, Tôi đã tạo một trình tạo, bây giờ tôi cần đặt giá trị của nó ở id tối đa hiện tại từ bảng TABLENAME, như sau:
/* one would expect that the following command would work, well it doesn't */
SET GENERATOR GEN_TABLENAME TO (SELECT MAX(ID) FROM TABLENAME);
Bây giờ, là có bất kỳ workaround cho điều này, hoặc tôi buộc phải:
- tạo máy phát điện
- nhận được id max
- cập nhật giá trị phát
và lặp lại quá trình cho mỗi bảng?
Tôi cũng mong rằng
SELECT
SELECT MAX(ID) AS ID_TABLENAME_1 FROM TABLENAME_1,
...
SELECT MAX(ID) AS ID_TABLENAME_N FROM TABLENAME_N
sẽ là một cách giải quyết để có được tối đa của id từ mỗi bảng trong một lệnh, nhưng nó không.
bạn đang sử dụng các thành phần nào? – rstrelba
@rstrelba interbase – ComputerSaysNo
Tôi quan tâm đến tên của các thành phần delphi. TIBDatabase? TIBQuery? TIBDataSet? – rstrelba