『壹』 為什麼說資料庫表的結構不能隨意修改
怕修改後導致數據丟失,比如你有個vchar類型的,你把它改成int,裡面的數據什麼字母ABCD啊它就轉換不過去,不支持互相轉換的數據就會全部清空....
另外如果你寫程序調用了資料庫,結構一改很可能程序會出錯,比如
int a=1;
int b=select b from table1 where...
int c=a+b
如果你把b對應的資料庫列改成char類型了它運行就會出錯,提示字元不能相+
『貳』 在access資料庫的表為什麼不能編輯 是ASP中的
能不能詳細點啊。
access資料庫是mdb文件,如果你用access打開時不能編輯,那就檢查一下這個文件是否設置為只讀了。
而如果是在ASP中打開這個mdb文件進行資料庫的讀寫,步聚如下:
一、創建Adodb.Connection對象用來連接資料庫
使用以下語句:Set Conn=Server.CreateObject("Adodb.Connection")
打開資料庫連接:Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&server.mappath("xxx.mdb")
其中的xxx.mdb就是你的access資料庫名稱(可以加上路徑例如:/data/xxx.mdb。
二、創建adodb.recordset記錄集對象來打開數據表並獲取記錄集
使用以下語句:
set rs=server.createobject("adodb.recordset")
rs.open "select * from xxtable",conn,1,3
這樣就打開了xxtable這個表,並返回了其中的所有記錄,並且是以可編輯狀態打開的。其中的conn即是你的資料庫連接對象的名稱,後面緊跟著的1是recordset記錄集對象的游標類型,此處為1表示你通過此SQL語句獲得的記錄集的游標可以前後移動,這樣你就可以進行記錄集的循環等操作。最後面的一個數字3,是記錄集的鎖定類型,3表示可編輯
關於游標類型及鎖定類型可以網路搜索一下
通過上面兩步,你已經獲得了一些記錄集並且處於可編輯這些記錄集的狀態了
接下來就可以使用rs.addnew,rs.update進行記錄的新增,更新操作。
比如新增:
rs.addnew() '表示新增一條記錄
rs("name")="test1"
rs("pass")="1234"
rs.update()
這樣就新增了一條記錄,其中的rs.addnew()表示新增一條記錄,緊接著用rs("name"),rs("pass")來寫入數據到name,pass這兩個欄位中,然後使用rs.update來保存一下你剛才的寫入,這樣一條新記錄的插入就完成了。
而如果你只是修改一條已有的記錄,則不需要rs.addnew(),後面的代碼一樣即可完成。不過修改記錄一般是會先查詢指定條件的某一條記錄再進行rs.updae
當然你也可以不使用recordset記錄集對象,而直接用sql語句的insert,update等來完成。
另外補充說明一點:
如果你發現用recordset或是sql的insert,update不能成功增加記錄或修改記錄,那麼你就檢查一下你的這個資料庫連接代碼是否連接成功(也就是資料庫文件的路徑是否寫對)。如果這些都對,那麼你再檢查這個資料庫文件是否是只讀狀態,如果也不是只讀狀態,那麼就應該是文件許可權的問題了。當你的MDB文件在NTFS格式的磁碟分區中時,需要設置文件的許可權才可以寫入數據,否則就只能讀取。
『叄』 SQL資料庫中一個表突然不能修改和插入,怎麼解決
以前我也有這種情況,
可能是由於物理性刪除數據造成的。
可以重啟試試
如果不行,可能是資料庫不穩定造成的,一般輕量級資料庫有這種問題,希望你時常做備份。