Từ 1 tới 7 trên tổng số 7 kết quả

Đề tài: Cách viết thủ tục tạo bảng tạm trong lập trình C!

  1. #1
    Ngày gia nhập
    10 2008
    Bài viết
    2

    Mặc định Cách viết thủ tục tạo bảng tạm trong lập trình C!

    Chào các bạn!
    Mình đang loay hoay tìm cách để viết thủ tục tạo bảng tạm để insert vào bảng từ giá trị cụ thể. Sau đó select dữ liệu mong muốn ra. Mong các bạn giúp mình hướng đi để giải quyết.
    Thanks.

  2. #2
    Ngày gia nhập
    09 2007
    Bài viết
    724

    Chẳng hiểu bạn làm như vậy vì mục đích gì??? nếu vì mục đích an toàn dữ liệu thì bạn có thể dùng trigger mà còn nếu cho người dùng chỉ được nhập vào bảng tạm sau đó bạn thêm sau khi Insert.

    Như vậy bạn có thể tạo ra một table theo kiểu. TableNameTmp( ...) với thuộc tính giống y chang bảng thật vậy sau đó khi thêm thì dùng câu lệnh như sau để thêm.

    SQL Code:
    1. INSERT INTO TableName(các trường của bảng TableName)
    2.              VALUES(
    3.                          SELECT  --- theo đúng thứ tự của các trường bạn ghi chổ tablename
    4.                          FROM TableNameTmp WHERE  -- điều kiện gì gì đó. cái này thường là 1
    5.                        )
    vậy là ok. Không biết đúng ý bạn hỏi không???

  3. #3
    Ngày gia nhập
    11 2007
    Bài viết
    294

    Hi daotuan85,

    Dark không hiểu mục đích tạo bảng tạm của bạn ở đây để làm gì ?
    Nếu chỉ để lấy dữ liệu từ các bảng khác sao bạn không thử dùng 1 giải pháp đơn giản hơn, ví dụ nhưng view chẳng hạn.

    @zkday : cái lệnh trên kia thực ra có thể viết đơn giản hơn rất nhiều,như thế này ^^!
    Code:
    create table abc as select x1,x2,x3 from xxx where x1='aaa'
    Nếu tạo table y hệt với cả dữ liệu thì thế này

    Code:
    create table abc as select * from xxx
    Nếu không thích có dữ liệu thì thế này

    Code:
    create table abc as select * from xxx where 0=1
    Cheers!
    Is the moon rising...

  4. #4
    Ngày gia nhập
    09 2007
    Bài viết
    724

    code của anh dark đặt ra 2 vấn đề sau:
    1 - Em dùng Sql Server 2000 chạy không được. (nó báo là: Incorrect syntax near the keyword 'as') không biết có phải anh dùng lệnh SQL của Oracle không.
    2 - Giả sử nếu được thì khi chúng ta Insert nhiều lần thì sẽ phát sinh vấn đề là trùng tên bảng. (vì ý của em ở đây là tạo ra một bảng tạm có sẳn trong database rồi sau đó chỉ cho người dùng Insert vào bảng đó thôi Khi một người có quyền cao hơn thì chúng ta sẽ cho người này lấy toàn bộ dữ liệu bên table tạm kia rồi Insert sang bảng chính của nó ).

  5. #5
    Ngày gia nhập
    11 2007
    Bài viết
    294

    @zkday : Hóa ra chạy trên sql không được ah ^^!
    Dark có dùng nó với oracle & mysql đều ok nên cứ nghĩ nó là syntax chuẩn, sozzy,sozzy ^^!

    Còn vấn đề về cái bảng tạm,thực ra code của Dark chỉ là 1 cách khác để tạo 1 cái table. Còn với vấn đề của chủ topic mà tạo hẳn ra 1 cái table e rằng hơi lãng phí và không cần thiết.

    Theo những gì Dark biết thì template table chỉ nên dùng trong 2 trường hợp.
    1 - Dữ liệu chỉ dùng trong 1 session(template table của oracle. Cái này là 1 đối tượng riêng,giống y như table luôn, nhưng commit là mất tích ^^!)
    2 - Cache dữ liệu : Lúc này thì template table đóng vai trò là dữ liệu gần đây nhất. Cách này có lợi là nếu lượng data lớn mà yêu cầu truy vấn thường chỉ trong 1 khoảng thời gian nhất định thì tốc độ sẽ rất tốt(ví dụ như làm báo cáo cuối ngày,tổng hợp tình hình kinh doanh trong ngày...)

    Mà theo Dark thấy thì không có trường hợp nào giống với yêu cầu của chủ topic ^^!
    Cheers!
    Is the moon rising...

  6. #6
    Ngày gia nhập
    06 2008
    Bài viết
    7

    Mặc định Cách viết thủ tục tạo bảng tạm trong lập trình C!

    Cú pháp bảng tạm hả
    Select <cái gì đó> into #<tên bảng tạm>
    Ko biết có đúng ý bạn ko?
    #<tên bảng tạm> : table cục bộ ảo
    ##<tên bảng tạm>: table toàn cục ảo

  7. #7
    Ngày gia nhập
    06 2007
    Nơi ở
    Hà nội
    Bài viết
    77

    Trích dẫn Nguyên bản được gửi bởi zkday2686 Xem bài viết
    code của anh dark đặt ra 2 vấn đề sau:
    1 - Em dùng Sql Server 2000 chạy không được. (nó báo là: Incorrect syntax near the keyword 'as') không biết có phải anh dùng lệnh SQL của Oracle không.
    cấu trúc bên MSSQL
    PHP Code:
    select [field1,field2,fieldn,...] into [table1from [table2
    table1 : bảng cần tạo
    table2 : bảng chứa dữ liệu cần lấy
    Trích dẫn Nguyên bản được gửi bởi zkday2686 Xem bài viết
    2 - Giả sử nếu được thì khi chúng ta Insert nhiều lần thì sẽ phát sinh vấn đề là trùng tên bảng. (vì ý của em ở đây là tạo ra một bảng tạm có sẳn trong database rồi sau đó chỉ cho người dùng Insert vào bảng đó thôi Khi một người có quyền cao hơn thì chúng ta sẽ cho người này lấy toàn bộ dữ liệu bên table tạm kia rồi Insert sang bảng chính của nó ).
    tất nhiên 1 bảng được tạo ra thì nó là duy nhất,để tránh tình trạng trên thì chỉ việc kiểm tra xem nó đã tồn tại chưa,nếu tồn tại rồi thì :
    1.muốn sử dụng lại tên bảng đó thì xóa nó đi rồi mới thực hiện câu lệnh trên
    2.ngược lại thì chỉ việc đặt tên khác rồi cho insert DL vào
    Sống ở trên đời cần có một TẤM LÒNG để lúc đói còn có chỗ mà nhét THỨC ĂN

Các đề tài tương tự

  1. Lập trình C hai cách viết trong bài viết này có gì khác không, nếu khác mọi người giải thích giúp với
    Gửi bởi letung94 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 5
    Bài viết cuối: 02-01-2013, 07:29 AM
  2. Bài tập C++ Hàm chuyển chữ viết thường thành chữ viết hoa trong C++?
    Gửi bởi monkey_92 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 5
    Bài viết cuối: 08-11-2011, 03:47 PM
  3. muốn viết code cho 1 button nằm trong girdview thì viết ở đâu
    Gửi bởi thuan trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 2
    Bài viết cuối: 14-09-2011, 01:08 PM
  4. Viết code trên Form và viết code trong class có gì khác nhau.
    Gửi bởi hocCsharp trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 21
    Bài viết cuối: 21-01-2011, 10:37 PM
  5. [visual basic]Viết lệnh trong sự kiện timer là viết ở đâu?
    Gửi bởi thuan trong diễn đàn Thắc mắc chung
    Trả lời: 2
    Bài viết cuối: 21-09-2010, 12:53 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn