H2数据库使用说明英文版


-
H2数据库使用说明,包括怎么安装,怎么启动服务,样例,执行,连接,端口,断开连接等
Using h2 within NetBeans ■■口■■■D■_m■■■ 35 Using H2 with jooQ 36 Using databases in Web Applications.…,…,………37 Embedded mode ∴37 Server mode Using a servlet Listener to start and stop a database 37 Using the h2 Console servlet………38 Android ■口■■■■■口■ 39 Csv( Comma Separated values) Support,…,,…, "■■■■■■■■■■■■■■■■■■■Ⅱ■』■■ 40 Reading a CSv File from Within a Database…,…,…,,……,40 Importing Data from a CSv File 41 Writing a CSv file from Within a database .meemeetastmeaetataeaetentaenonnn 41 Writing a CSV File from a Java Application Reading a Cs∨ File from a Java application……,…,…,…,……,41 Upgrade, Backup, and restore,…,…,…,…,…,,…,,……,……42 Database Upgrade.,…,…,42 Backup using the Script tool.m. ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 42 Restore from a Script 43 Online Backup 日口■■■量口■■ 243 Command line tools 43 The shell tool ∴4 Using OpenOffice Base ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■口■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 45 Java Web start/JNLP ■■■■■■■■■■■■■■■■■■■■■■■■■【■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■日■■D■ Using a Connection Pool,…,…,…,…,…………,46 Fulltext search 46 Using the Native Fulltext Search 47 Using the Apache Lucene Fulltext search ■■■■■ 47 User-Defined variables .49 Date and Time. Using spring…,…,…,…,…,…,,…,…,…,50 Using the TCP Server. _aaaa: 8日a日 B日日日日 50 OSGi.…………………50 Java Management Extension JMX) ■■■■■■■■■■■■■■■■■■■■■■Ⅱ■■■■■■■■■■■n■■■■■■ 51 Feature list 52 Main features ∴52 Additional features SQL Support.….….…,…,…,…,,………………53 Security Features .mm....53 Other Features and Tools. Comparison to other Database Engines H2 in Use 56 Connection Modes 56 Embedded mode,,,… ■口■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■"口■E■■■■口 56 Server mode w57 Mixed mode ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■口■口■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 57 3of290 Database Url Overview 58 Connecting to an Embedded( In- Memory databases.…..,…,,…,…60 Database Files Encryption ■Ⅱ■■■■■ 60 Creating a New database with File Encryption…,…………61 Connecting to an Encrypted Database 61 Encrypting or Decrypting a Database ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 61 Database file lockⅰng.………………………652 Opening a database Only if it Already Exists,,…,,,……62 Closing a Database.……63 Delayed Database Closing 63 Don 't close a database when the vm exits ■■■ 63 Execute SQL on Connection ,63 Ignore Unknown Settings…,…,…,,…,,…,…,…64 Changing other Settings when Opening a connection.………,…,64 Custom File Access mode ■■■■■■■■■■■■■■■■■■■■■口■■■m■■_■■■■口D■■口■■■口重■■■■■直■■■D■ 64 Multiple connections ■■■■■■口■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 65 Opening multiple databases at the same Time................65 Multiple Connections to the Same Database: Client/Server 65 Multithreading support.…,…,, ■■■■■■■■■■■■ 65 Locking, Lock-Timeout, Deadlocks. 65 Avoiding deadlocks.,,,,,,…,,,……66 Database File layout ■■■■■■■■【■■■■■ ■■■■■■ ■■■■■■■■■■■■■■■■■■■『■■■■■■■■■■■■■口■■■■■■■■ 66 Moving and renaming database Files. Backup 67 ogging and recovery.…,…,……,…,………68 Compatibility,,…,,… ……68 Compatibility modes 68 DB2 Compatibility Mode Derby compatibility Mode ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 69 HSQLDB Compatibility Mode.…,…,…,…,………69 MS SQL Server Compatibility Mode 69 MySQL Compatibility Mode n70 Oracle Compatibility mode 日 nD 70 PostgreSQL Compatibility mode 71 Ignite Compatibility mode.,…,…,…,…,,…,,,,,,…,71 Auto- Reconnect,……………71 Automatic Mixed mode ■■■■■■■■■■■■口■■■■■■■■■■口■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ Page size.……,………………173 Using the Trace Options...,…,…,…,……… 73 Trace Options,,…,…,…,,……,,…………73 Setting the Maximum Size of the Trace File.…,,……, 73 ava code generatⅰon…,74 Using other Logging aPis ■■■■■■■■D■■■■■■■■■口■■D口■■■■■■■■■■口■■■■■■am■ ∴74 Read Only Databases ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 75 4of290 Read Only Databases in Zip or Jar File 75 Opening a corrupted database.amammmmaeamaenmannt76 Computed Columns/Function Based Index........................76 Mutⅰ- Dimensional indexes… 76 User-Defined functions and stored procedures 77 Referencing a compiled method.ea..eaeeeeaaIe.IISES 77 Declaring Functions as Source Code,,…,,…,,………,,,…,78 Method overloading 79 Function Data Type Mapping ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■口■■■■■■ 79 Functions That require a Connection ......o..m.79 Functions Throwing an Exception 79 Functions Returning a result set.,,,…,…, 79 Using SimpleResultset 80 Using a Function as a table…,…,,…,…,…,80 Pluggable or User- Defined tables.,,,,…,……,81 Triggers ■■画■aaa■"n■a■an"a■na■■■"■ aaaaaaaa“aaaaaaaaaaaaaaaaaa:a 82 Compacting a database ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■口■■■■■■■■■■■■■■■■■■■■口■■■■■■ ■■■■■■■■■■■■■■■ 83 Cache settings.… ■■■■■■■■■■■■■■■■■D■ 84 Performance Comparison 85 Embedded 85 Client-Server 86 Benchmark results and comments ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 87 H2 ■■■■■■■■■■口■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■I 87 HSQLDB ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■口■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 87 Derby. …………87 PostgreSQl 88 MySQL. ■■■■■■■■ 88 Firebird ∴88 Why oracle/ MS SQL Server/DB2 are not listed.………,8 about this benchmark ■■■■■■■■■■■■■■■■■■■"■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■_■■■■L■■■ 88 How to run ■■■■■■■■ BBBBB.. 88 Separate Process per Database…,…,…,…,,,…,!89 Number of connections 89 Real-World Tests 89 Comparing Embedded with Server Databases 89 Test platform n89 Multiple Runs..……………89 Memory Usage araaar. ■■■■■■■■■■口■■■■■■■■■■口■■■ ■■■■■■■■■■I■■口■ ■■■■■■■Ⅱ■■■ 89 Delayed Operations.................................90 Transaction commit/ Durability………,………………90 Using prepared statements.maeaeaeaI 90 Currently not Tested: Startup Time 90 Poleposition benchmark ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 90 Database Performance Tuning…………………92 Keep Connections Open or Use a Connection PooL...... ■■■■■■■D■■■■■口■■■■Ⅱ■■■■ 92 5of290 Use a Modern JVM 92 Virus scanners ■■■■■■■■■■■■■"■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■"■Ⅱ■■D■_■■■DD■■ 92 Using the Trace options 日日日日日日 ■■■■■量■■ 92 Index Usage…, 93 Index hints ■■■■■■■■■ ■■■■ ∴93 How Data is Stored Internally …93 Optimizer…,,…,,,,,…,94 Expression optimization ■■■■■■D■D■■口■■■口■■B■■D■■重■ 0 L■■■B■■D■口■■道■口 94 COUNT(*) Optimization,…,…,,…,…,…,…,,…,…,94 Updating Optimizer statistics/ Column selectⅳvity……………94 In- Memory(Hash) Indexes……,…,…,…………95 Use prepared statements ■■■■■■■■■■■■■■■■■■■■口■■■■■■■■■■■■■■■■■■■■■"■■■■■■■■■■■■■■n■■n■■■na 95 Prepared Statements and IN(…,).,… 95 Optimization Examples.,,…,…,…,,…,,96 Cache size and type.……,,……………………96 Data Types aaaaa日:aaaaaaaaaaaaa日:aaaaaaaaaaaaaaaaaaaa口aaaaaaaaaaaaaaaaaaaaaa 96 Sorted Insert optimization ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 96 Using the Built-In Profiler ■日日日a日日日a日a日日aa日日日日a日日日日日日 96 Application Profiling..……,………,……………97 Analyze First.…,, ■■■■■■■■■■■■■■ 97 Database profiling 98 Statement Execution plans……98 Displaying the Scan Count ■■■■■■■■■■■■■■■■■■■■■『■■■■■■■■■■■Ⅱ■■■■■■■■■■■■■■■■■■■■Ⅱ■■■■■■■ 99 Special Optimizations 100 How data is stored and how indexes work Indexes ■■■■■m■■ 101 Using Multiple Indexes. 103 Fast Database import 103 Result sets…………………………106 Statements that return a result set Limiting the Number of Rows 106 Large Result Sets and External Sorting 106 Large objects…,…,…,…,…,…,…,,…,………106 Storing and Reading Large objects 106 When to use CLOB/BLOB 106 Large object Compression.m. ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 107 Linked tables. Updatable views ■■■■■■■■■■■■■■■■■■■■■■■■■■D■■■■■■■■■■■■■■口■■■■口■■■■ ■■■■■【■■ 108 Transaction isolation Table Level Locking.……,…,…,………………,109 Lock timeout 110 Multi-Version Concurrency Control(vcc) 110 Clustering/ High Availabilit!y……,…,…,…,…,…,"…,…,,…,…………,111 Using the CreateCluster Tool.………,…,………111 Detect Which Cluster Instances are running…,…,,……112 6of290 Clustering algorithm and Limitations…………113 Two Phase commit ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■D■■■■■■■ 113 Compatibility..…,…,…,…,…,…,…,… 114 Transaction Commit when Keywords/ Reserved words.…,… 114 Standards Compliance 口■■■■■■ 114 Supported Character Sets, Character Encoding, and Unicode. msamanntnnmn 114 Run as windows service w 115 Install the service Start the service. .................................115 Connect to the h2 console 115 Stop the service 115 Uninstall the service 116 Additional jDbc drivers ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 116 ODBC Driver116 ODBC Installation maaaaaaaaaaaanaaaaaaaaaaaa ■■■口D■■ 116 Starting the server ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 116 ODBC Configuration. ................................................................117 PG Protocol Support Limitations 118 Security Considerations.a.means 118 Using microsoft Access 118 Using H2 in microsoft.NET…,…,…,,…,…,,…,,,…,,118 Using the ado. NeT aPi on.Net. ■■■■口■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■【■■■■■■■■■■■■■■口■■ Using the JDBC API on. NET 119 ACID 119 Atomicity. 120 Consistency………… …120 Isolation ∴120 Durability. ..............................................................................................120 Durability problems.,,,,,…,……………120 Ways to(Not) Achieve durability………,……………120 Running the durability test 122 Using the recover tool ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 122 File locking protocols 123 File locking method File 123 File Locking method' Socket',,…,,"…,…,,…124 File locking method FS 125 Using Passwords ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■口■■■■■■■ 125 Using secure passwords..............................125 Passwords: Using Char Arrays instead of Strings………125 Passing the User Name and or Password in the URL. 126 Password hash 126 Protection against SQL Injection.,…,…,…,,…,…,,,…,,…,……,127 What is SQL Injection.…,…,…,…,…,…,…,…………127 Disabling Literals ■■I■■■ ■■■■■■■■"口■■■■■■■■■■■■■■■■口■■■■■■■ 灬…127 7of290 Using Constants.……………………128 Using the ZeRo Function ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■口■■ 128 Protection against Remote access……,…,,…128 Restricting Class loading and Usage. 129 Security protocols.mame.at ,129 User Password encryption.…,…,…,…,…,……,……130 File Encryption…,…,…,…,…,…,…,…,…,…,…,…,…,…,130 Wrong password/ User Name Delay.…………………131 Https Connections...……………………………………132 TLS Connections 132 Universally Unique Identifiers(UUID).………………………132 Spatial Features 133 Recursive queries 134 Settings Read from System Properties,,…,…,,……135 Setting the server Bind Address.,…,,…,,…,,…,,136 Pluggable File System 00 D日 0 D“aaa: 0 D“a ∴136 Split file system.…,, ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 137 Database Upgrade…,…,…,,…,,,………137 Java objects Serialization.……,…,,…,……,……………,138 Custom Data Types Handler API. 138 Limits and limitations 139 Glossary and links,…,…,…,…,…,…,…,,…,…,…,……,140 Index ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■D■ID■■ 141 Commands (data manipulation) ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 141 Commands( Data Definition)…,…,…,…,…,…,…,…,,………,141 Commands(other) 1412 Datetime fⅰeds Other grammar 144 Commands( Data Manipulation)………………………145 SELECT ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■口■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■[■ 145 Ⅰ NSERT aa日 BIB日a日Baa日aa日 mIND日a日 IBEBBB.日日: B-I日 146 UPDATE ■■■■■■■■■■■■■■■■■■■■■■ 1417 DELETE 目a:日日日:日日1日日日a日日aB日■ 147 BACKUP .147 CALL ■■■■■■■■■ 148 EXPLAIN 148 MERGE 148 MERGE USING ■■■■■■■■■■■■■■■■■■■■■口■LD口■■■■L■口■ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■Ⅱ■■■■【口■■■■D■D■■ 149 RUNSCRIPT.................................149 SCRIPT ……………………………150 SHOW 151 WITH 151 Commands( Data definition),,…,…,…,…,…,…,…,,…,…………152 ALTER INDEX RENAME………152 ALTER SCHEMA RENAME ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 152 8of290 ALTER SEQUENCE 152 ALTER TABLE ADD 153 ALTER TABLE ADD CONSTRAINT .153 ALTER TABLE RENAME CONSTRAINT ■■■■■■■■口■■■■■■■■■■■■■■ 153 ALTER TABLE ALTER COLUMN ■■■■口■■噩■■■■■ 154 ALTER TABLE DROP COLUMN 155 ALTER TABLE DROP CONSTRAINT……………………………………,155 ALTER TABLE SET……155 ALTER TABLE RENAME ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 156 ALTER USER ADMIN 156 ALTER USER RENAME,… ■■■■■ ■■■■■■■■■口■ 156 ALTER USER SET PASSWORD ∴157 ALTER VIEW 157 ANALYZE ■■■■■■■■■■ ■■■■■■■■■■■ ……157 COMMENT…158 CREATE AGGREGATE.……158 CREATE ALIAS ■■■■■■■■■■口■■■ 159 CREATE CONSTANT................................160 CREATE DOMAIN 160 CREATE INDEX ■■■■■■■■ 160 CREATE LINKED TABLE 161 CREATE ROLE……162 CREATE SCHEMA162 CREATE SEQUENCE…,,…,…,…,…,…,…,…………163 CREATE TABLE ■■■■■■■■■■ 163 CREATE TRIGGER 日:日.日日:日a:a日日a日日日日aaaa日日aaaa日a日:a日a日:a日aa:aa:a:日aa:aa:a日aa日 164 CREATE USER 166 CREATE VIEW 166 DROP AGGREGATE………………166 DROP ALIAS ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ■■■■■■■■■■■■■■ ■D■■■■L■■■■■ n167 DROP ALL OBJECTS ■D日■1日D日D■口D■■■■■D■■■DD■■■D■■■ 167 DROP CONSTANT..m..167 DROP DOMAIN ■■【■■■■■■■■ ∴168 DROP INDEX 168 DROP ROLE 1168 DROP SCHEMAWIN 168 DROP SEQUENCE……,…,…,…,……………169 DROP TABLE ■■■■■■■■■■■■■■口■■■■口■■■■■口■■■■ ■■■■■■■■■■■■■■■■■【■■■Ⅱ■D■ 169 DROP TRIGGER169 DROP USER a_:日a日aaaa日:: BBB-BI日a: nD日日日: I-I日aaa日日a 169 DROP VIEW ■■■■■■■■■■■■■■■■■■ 170 TRUNCATE TABLE 170 Commands( Other)… ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■"■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 170 CHECKPOINT ■■■■■■■■■ ■■■■■■■■■■■■■■■口■ 170 CHECKPOINT SYNC ■■■■■■■■■■■■■■■■口■■■■口■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 171 9of290 COMMIT 1171 COMMIT TRANSACTION ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■"■■■■■■■■■■ 171 GRANT RIGHT..……171 GRANT ALTER ANY SCHEMA ■■■■■■■■■■■■■■ ■■ 172 GRANT ROLE 172 HELP ,172 PREPARE COMMI…………………………173 REVOKE RIGHT.............................173 REVOKE ROLE 173 ROLLBACK 日日a::日aa日:aaa日:aa日日:日aaa日日aaa:日a日:日 174 ROLLBACK TRANSACTION 174 SAVEPOINT 174 SET@ 174 SET ALLOW LITERALS ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■D■■■■ 175 SET AUTOCOMMIT ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■D■■■■■■■■n日■■n■ ∴175 SET CACHE SIZE aaaaaaaaaaaaaaaaanaaaanaaaaaaaaaaaanaaaaaaaaaaaaaaaaaaaa 175 SET CLUSTER 176 SET BINARY COLLATION ■■口■■■口■■■■D■■■■■D■■D口■■■■ 176 SET BUILTIN ALIAS OVERRIDE 177 SET COLLATION177 SET COMPRESS LOB 178 SET DATABASE EVENT LISTENER 178 SET DB CLOSE DELAY ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■口■【■■Ⅱ■■■■■■■■■■■■■■日■BD■口 179 SET DEFAULT LOCK TIMEOUT ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■口■■ 179 SET DEFAULT TABLE TYPE………,………………………,179 SET EXCLUSIVE 180 SET IGNORECASE ■■■■■■■■■■■■■■■■■■■■■■■■■ 180 SET JAVA OBJECT SERIALIZER 181 SET LAZY_QUERYEXECUTION.…………………181 SET LOG ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■D■"■■■■■■■ 182 SET LOCK MODE ■D■■■■■D■■D口D■■■ 182 SET LOCK TIMEOUT……………………183 SET MAX LENGTH INPLACE LOB ■■■■■■■■■■■■■■■口■■■■■■■■_■■BD 183 SET MAX LOG SIZE .184 SET MAX MEMORY ROWS n184 SET MAⅩ MEMORY UNDO,……184 SET MAX OPERATION MEMORY ■■■■■■■■■■■■■■■■ 185 SET MODE ■■■■■■■■■■■■■■■■■■■■■■■■■■口■■■■【■■■ ■■■■■■■■■冒■■■■ …185 SET MULTI THREADED,...................4.185 SET OPTIMIZE REUSE RESULTS ■■■■■■_■■■■D■■■■DD口 186 SET PASSWORD ■■■■■■■■■a■ n■口■■■■■■■ 186 SET QUERY STATISTICS ■m■■■■■■m■ 187 SET QUERY_ STATISTICS_ MAX_ENTRIES.……………187 SET QUERY TIMEOUT…………………187 SET REFERENTIAL INTEGRITY ■■■■■■■■■■■■■■■■■■■■■■口■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■口■■■■■ 188 10of290

8.20MB
H2数据库完整版-安装服务和说明
2018-08-27安装工具,里面包括文档H2 Database Engine,快速入门,安装,sql语法,数据类型说明等
264KB
H2Database聚合函数
2017-07-27本文档包含了h2数据库的聚合函数的中文说明和举例
1.51MB
h2数据库功能介绍资料
2020-12-12h2原版英文资料!h2是基于java的内存数据库,pdf主要是h2数据库功能介绍和说明,常用命令行用法,通脚本操作数据库!备份恢复说明!数据库升级
752KB
shiyansystem
2010-11-03基于ASP实验室的实验室管理系统,功能比较完善,数据库为access,实现实验室自动化管理
1.83MB
功能齐全 Bezier曲线 VC++6.0
2010-05-19VC++6.0编写,双击可显示控制点,可移动的控制点
1.64MB
研究生分布式数据库考试试题及其答案
2011-01-044.1.1. 分布库管理系统有哪些主要功能模块及其作用. 24 4.1.2. 半连接方法和枚举法各适用于何种查询优化情况. 25 4.1.3. 分布式事务有哪些基本性质. 25 4.1.4. 什么是2PL协议 25 4.2. 下面是某个公司的人事关系数据库的全局模式: 25 4.2.1. 将全局模式进行分片,写出分片定义和分片条件。 26 4.2.2. 指出分片的类型,并画出分片树。 26 4.3. 对题4.2所确定的分片模式,要求查询级别高于“6”的所有职员的姓名和工资,写出的在全局模式上的SQL查询语句,并要求转换成相应的关系代数表示,画出全局查询树。 26 4.3.1. 进行全局优化,画出各步优化后的全局查询树。 26 4.3.2. 进行分片优化,画出各步优化后的分片查询树。 27 4.4. 下面是一个数据库系统出现故障是,日志文件中记录的信息; 27 4.4.1. 找出发生故障时系统中的活动事务,确定出反做和重做事务集。 27 4.4.2. 用C或其他语言定义出数据库记录(D记录)和检查点记录(K记录)的数据结构。 28 4.5. 设数据项x,y存放在S1场地,u,v存放在S2场地,有分布式事务T1和T2,T1在S1场地的操作为R1(x)W1(x)R1(y)W1(y),T2在S1场地的操作为R2(x)R2(y)W2(y);T1在S2场地上的操作作为R1(u)R1(v)W1(u),T2在S2场地上的操作作为W2(u)R2(v)W2(v)。对下述2种情况,各举一种可能的局部历程(H1和H2),并说明理由 28 4.5.1. 局部分别是可串行化,而全局是不可串行化的 28 4.5.2. 局部和全局都是可串行化的。 28
32KB
asp连接数据库代码实例
2009-05-09连接数据库代码实例 1,连接数据库代码 文件名称 conn.asp 所有访问数据库的文件都调用此文件<!--#include file=\"Conn.asp\"--> <% db=\"data/data.mdb\" \'数据库存放目录 on error resume next set conn=server.createobject(\"adodb.connection\") conn.open \"driver={microsoft access driver (*.mdb)};dbq=\"&server.mappath(db) if err then err.clear set conn = Nothing response.write \"数据库连接出错,请检查conn.asp中的连接字符串。\" response.end end if function CloseDB Conn.Close set Conn=Nothing End Function %> <% dim badword badword=\"\'|and|select|update|chr|delete|%20from|;|insert|mid|master.|set|chr(37)|=\" if request.QueryString<>\"\" then chk=split(badword,\"|\") for each query_name in request.querystring for i=0 to ubound(chk) if instr(lcase(request.querystring(query_name)),chk(i))<>0 then response.write \"<script language=javascript>alert(\'传参错误!参数 \"&query_name&\" 的值中包含非法字符串!\\n\\n\');location=\'\"&request.ServerVariables(\"HTTP_REFERER\")&\"\'</Script>\" response.end end if next next end if %> ---------------------------------------------- 2。增加纪录 <% if request(\"action\")=\"add\" then name=request.form(\"name\") content=request.form(\"content\") set rs=server.createobject(\"adodb.recordset\") sql=\"select * from biao\" rs.open sql,conn,3,2 rs.addnew rs(\"name\")=name if content<>\"\" then rs(\"content\")=content else rs(\"content\")=null end if rs(\"date\")=date() rs.update rs.close set rs=nothing response.write \"<script language=javascript>alert(\'添加成功!\');location.href(\'index.asp\');</script>\" end if %> -------------------------------------- 3.显示记录 <% set rs=server.createobject(\"adodb.recordset\") sql=\"select * from biao order by id desc\" \'sql=\"select top 10 * from biao order by id desc\" rs.open sql,conn,1,1 rs.pagesize=15 \'-------设置每页显示的记录数 dim page page=request(\"page\") if page<>\"\" and IsNumeric(page) then page=clng(page) else page=1 end if n=rs.pagecount if page>n then page=clng(n) end if if rs.eof then response.write\"<font color=#FF0000>暂没有信息!</font>\" \'response.end else rs.absolutepage=page end if i=0 do while not rs.eof and i<rs.pagesize \'do while not rs.eof %> --------如果是每行显示n个纪录开始---------------------------- <% do while not rs.eof and i<rs.pagesize \'do while not rs.eof if i mod 5=0 then \'--------设置每行显示的个数 response.write \"<tr>\" end if %> --------如果是每行显示n个纪录结束----------------------------- <%=rs(\"id\")%> <% rs.movenext i=i+1 loop %> <% response.write(\"共\"&rs.recordcount&\"条信息 \") if page<>1 then response.write(\"<a href=?page=1 title=\'首页\'>首页</a> \") else response.write(\"首页 \") end if if page>1 then response.write(\"<a href=?page=\"&page-1&\" title=\'上一页\'>上一页</a> \") else response.write(\"上一页 \") end if if page<n then response.write(\"<a href=?page=\"&page+1&\" title=\'下一页\'>下一页</a> \") else response.write(\"下一页 \") end if if page<>n then response.write(\"<a href=?page=\"&n&\" title=\'尾页\'>尾页</a> \") else response.write(\"尾页 \") end if response.write(\" 当前页:\"&page&\"/\"&n&\"\") %> 转到:<select name=\"select\" onChange=\'javascript:window.open(this.options[this.selectedIndex].value,\"_top\")\'> <%for p=1 to rs.pagecount%> <option value=\"?page=<%=p%>\" <% if page=p then response.write \"selected\" end if%>>第<%=p%>页</option> <%next%> ---------------------------------------------- 4。更新纪录,删除纪录,删除所有记录 <% if request(\"action\")=\"manage\" then call manage() end if if request(\"action\")=\"edit\" then id=request(\"id\") set rs=server.createobject(\"adodb.recordset\") sql=\"select * from biao where id=\"&id&\"\" rs.open sql,conn,1,1 call edit() end if if request(\"action\")=\"del\" then conn.execute(\"delete * from biao where id=\"&request(\"id\")&\"\") conn.close response.write\"<script language=\'javascript\'>alert(\'删除成功!\');location.href(\'?action=manage\');</script>\" end if if request(\"action\")=\"delall\" then conn.execute(\"delete * from biao\") conn.close response.write\"<script language=\'javascript\'>alert(\'所有信息已成功删除!\');location.href(\'?action=manage\');</script>\" end if if request(\"action\")=\"saveedit\" then name=request.form(\"name\") hits=request.form(\"hits\") content=request.form(\"content\") set rs=server.createobject(\"adodb.recordset\") sql=\"select * from biao where id=\"&request(\"id\")&\"\" rs.open sql,conn,3,2 rs(\"name\")=name rs(\"content\")=content rs(\"hits\")=hits rs.update conn.close set rs=nothing response.write \"<script language=javascript>alert(\'编辑成功!\');location.href(\'?id=\"&request(\"id\")&\"&action=edit\');</script>\" end if %> --------------------------------- 5。查询纪录 <form name="form1" method="post" action="search.asp"> <input name="keyword" type="text" id="keyword" size="25"> <select name="select" size="1"> <option value="name" selected>名称</option> <option value="content">说明</option> <option value="id">id</option> </select> <input type="submit" name="Submit" value="查询"> </form> ------search.asp--------------- <% if request("keyword")<>"" and request("select")<>"" then sql="select * from biao where "&request("select")&" like '%"&request("keyword")&"%'" elseif request("keyword")<>"" and request("select")="all" then sql="select * from biao where name like '%"&request("keyword")&"%' or id like '%"&request("keyword")&"%' or content like '%"&request("keyword")&"%'" else response.redirect("index.asp") end if set rs=server.createobject("adodb.recordset") rs.open sql,conn,1,1 rs.pagesize=15 '-------设置每页显示的记录数 dim page page=request("page") if page<>"" and IsNumeric(page) then page=clng(page) else page=1 end if n=rs.pagecount if page>n then page=clng(n) end if if rs.eof then response.write"<font color=#FF0000>查询的信息不存在或者已经删除!</font>" 'response.end else rs.absolutepage=page end if i=0 do while not rs.eof and i<rs.pagesize 'do while not rs.eof %> <%=rs("id")%> <% rs.movenext i=i+1 loop %> ----------------------------------------- 6.有分类的纪录代码 ---------------显示分类开始--------------------------------- <% set rs=server.createobject("adodb.recordset") sql="select all * from class order by id desc" rs.open sql,conn,1,1 do while not rs.eof %> <a href="class.asp?classname=<%=rs("classname")%>"><b><%=rs("classname")%></b></a> <% rs.movenext i=i+1 loop %> ---------------显示分类结束-------------------------- -------------显示现在所在分类开始------------------- <% set rs=server.createobject("adodb.recordset") sql="select top 1 * from class where classname='"&request("classname")&"'" rs.open sql,conn,1,1 do while not rs.eof %> <%=rs("classname")%> <% rs.movenext i=i+1 loop %> -----------显示现在所在分类结束---------------------- -----------显示此分类的纪录开始------------ <% set rs=server.createobject("adodb.recordset") sql="select * from biao where fenlei='"&request("classname")&"'" rs.open sql,conn,1,1 rs.pagesize=10 '-------设置每页显示的记录数 dim page page=request("page") if page<>"" and IsNumeric(page) then page=clng(page) else page=1 end if n=rs.pagecount if page>n then page=clng(n) end if if rs.bof or rs.eof then response.write"<font color=#ff0000>暂没有任何数据!</font>" 'response.end else rs.absolutepage=page end if i=0 do while not rs.eof and i<rs.pagesize %> <%=rs("id")%> <% rs.movenext i=i+1 loop %> --------------显示此分类的纪录结束---------------- ---------删除所在分类纪录开始------------ <% if request("classname")<>"" then%> <a href="?action=del_fenlei&classname=<%=request("classname")%>" title="删除所有本类信息?" onClick="{if (confirm('您确定要删除所有信息吗?')){return true;}return false;}"><font color=FF0000>清空所有本类信息</font></a> <%end if%> if request("action")="del_fenlei" then classname=request("classname") conn.execute("delete * from biao where fenlei='"&classname&"'") CloseDB response.write"<script language='javascript'>alert('删除本类成功!');location.href('?action=manage');</script>" end if ---------删除所在分类纪录结束-------------------------------- ------------------------------- 7。上传文件或者图片 删除文件代码 (请在同一目录建立文件夹upfile/softpic) 上传文件的页面(调用upsoftpic.asp) <form name="form" method="post" action="?action=add" onsubmit="return chkform(this)"> <input name="picurl" type="text" id="picurl" size="20"> <iframe name="I1" width="155" height="25" src="upsoftpic.asp" scrolling="no" border="0" frameborder="0">浏览器不支持嵌入式框架,或被配置为不显示嵌入式框架。</iframe> </form> upsoftpic.asp <form action="Upfile.asp?action=upsoftpic" method="POST" enctype="multipart/form-data" class="fontmenu2" onsubmit="up.disabled=true;up.value='上传中,请稍候……'"> <input name="softpic" type="file" class="fontmenu2" size="1"> <input type="submit" value="上传" name="up" > </form> upfile.asp <%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%> <%Server.ScriptTimeout=999%> <!--#include file="Conn.asp"--> <!--#include file="Upload.asp" --> <!-- 上传软件或者图片开始 --> <% if request("action")="upsoftpic" then set upload=new upload_5xsoft set file=upload.file("softpic") fileExt=lcase(right(file.filename,4)) if fileEXT<>".jpg" and fileEXT<>".gif" and fileEXT<>".rar" then '---设置上传类型 ++++fileEXT<>".***"++++++++ response.write"<script>alert('格式不对,请重新上传!');location='"&request.ServerVariables("HTTP_REFERER")&"'</script>" response.end end if if file.fileSize>0 then formPath="upfile/softpic" '-------上传路径 'formPath="../upfile/softpic" if right(formPath,1)<>"/" then formPath=formPath&"/" end if vfname = filename(now()) fname = vfname & "." & GetExtendName(file.FileName) file.SaveAs Server.mappath(formPath&fname) ''保存文件 %> <script> parent.form.picurl.value+='upfile/softpic/<%=fname%>' //-上传路径 //parent.frmadd.dreamcontent.value+='[img]upload/<%=ufp%>[/img]' location.replace('Upsoftpic.asp') //---返回文件 </script> <% '------文件名 end if set file=nothing set upload=nothing function filename(fname) fname = now() fname = replace(fname,"-","") fname = replace(fname," ","") fname = replace(fname,":","") fname = replace(fname,"PM","") fname = replace(fname,"AM","") fname = replace(fname,"上午","") fname = replace(fname,"下午","") filename=fname end function function GetExtendName(FileName) dim ExtName ExtName = LCase(FileName) ExtName = right(ExtName,3) ExtName = right(ExtName,3-Instr(ExtName,".")) GetExtendName = ExtName end function end if %> <!-- 上传软件或者图片结束 --> upload.asp <SCRIPT RUNAT=SERVER LANGUAGE=VBSCRIPT> dim Data_5xsoft Class upload_5xsoft dim objForm,objFile,Version Public function Form(strForm) strForm=lcase(strForm) if not objForm.exists(strForm) then Form="" else Form=objForm(strForm) end if end function Public function File(strFile) strFile=lcase(strFile) if not objFile.exists(strFile) then set File=new FileInfo else set File=objFile(strFile) end if end function Private Sub Class_Initialize dim RequestData,sStart,vbCrlf,sInfo,iInfoStart,iInfoEnd,tStream,iStart,theFile dim iFileSize,sFilePath,sFileType,sFormValue,sFileName dim iFindStart,iFindEnd dim iFormStart,iFormEnd,sFormName Version="化境HTTP上传程序 Version 2.0" set objForm=Server.CreateObject("Scripting.Dictionary") set objFile=Server.CreateObject("Scripting.Dictionary") if Request.TotalBytes<1 then Exit Sub set tStream = Server.CreateObject("adodb.stream") set Data_5xsoft = Server.CreateObject("adodb.stream") Data_5xsoft.Type = 1 Data_5xsoft.Mode =3 Data_5xsoft.Open Data_5xsoft.Write Request.BinaryRead(Request.TotalBytes) Data_5xsoft.Position=0 RequestData =Data_5xsoft.Read iFormStart = 1 iFormEnd = LenB(RequestData) vbCrlf = chrB(13) & chrB(10) sStart = MidB(RequestData,1, InStrB(iFormStart,RequestData,vbCrlf)-1) iStart = LenB (sStart) iFormStart=iFormStart+iStart+1 while (iFormStart + 10) < iFormEnd iInfoEnd = InStrB(iFormStart,RequestData,vbCrlf & vbCrlf)+3 tStream.Type = 1 tStream.Mode =3 tStream.Open Data_5xsoft.Position = iFormStart Data_5xsoft.CopyTo tStream,iInfoEnd-iFormStart tStream.Position = 0 tStream.Type = 2 tStream.Charset ="gb2312" sInfo = tStream.ReadText tStream.Close '取得表单项目名称 iFormStart = InStrB(iInfoEnd,RequestData,sStart) iFindStart = InStr(22,sInfo,"name=""",1)+6 iFindEnd = InStr(iFindStart,sInfo,"""",1) sFormName = lcase(Mid (sinfo,iFindStart,iFindEnd-iFindStart)) '如果是文件 if InStr (45,sInfo,"filename=""",1) > 0 then set theFile=new FileInfo '取得文件名 iFindStart = InStr(iFindEnd,sInfo,"filename=""",1)+10 iFindEnd = InStr(iFindStart,sInfo,"""",1) sFileName = Mid (sinfo,iFindStart,iFindEnd-iFindStart) theFile.FileName=getFileName(sFileName) theFile.FilePath=getFilePath(sFileName) '取得文件类型 iFindStart = InStr(iFindEnd,sInfo,"Content-Type: ",1)+14 iFindEnd = InStr(iFindStart,sInfo,vbCr) theFile.FileType =Mid (sinfo,iFindStart,iFindEnd-iFindStart) theFile.FileStart =iInfoEnd theFile.FileSize = iFormStart -iInfoEnd -3 theFile.FormName=sFormName if not objFile.Exists(sFormName) then objFile.add sFormName,theFile end if else '如果是表单项目 tStream.Type =1 tStream.Mode =3 tStream.Open Data_5xsoft.Position = iInfoEnd Data_5xsoft.CopyTo tStream,iFormStart-iInfoEnd-3 tStream.Position = 0 tStream.Type = 2 tStream.Charset ="gb2312" sFormValue = tStream.ReadText tStream.Close if objForm.Exists(sFormName) then objForm(sFormName)=objForm(sFormName)&", "&sFormValue else objForm.Add sFormName,sFormValue end if end if iFormStart=iFormStart+iStart+1 wend RequestData="" set tStream =nothing End Sub Private Sub Class_Terminate if Request.TotalBytes>0 then objForm.RemoveAll objFile.RemoveAll set objForm=nothing set objFile=nothing Data_5xsoft.Close set Data_5xsoft =nothing end if End Sub Private function GetFilePath(FullPath) If FullPath <> "" Then GetFilePath = left(FullPath,InStrRev(FullPath, "")) Else GetFilePath = "" End If End function Private function GetFileName(FullPath) If FullPath <> "" Then GetFileName = mid(FullPath,InStrRev(FullPath, "")+1) Else GetFileName = "" End If End function End Class Class FileInfo dim FormName,FileName,FilePath,FileSize,FileType,FileStart Private Sub Class_Initialize FileName = "" FilePath = "" FileSize = 0 FileStart= 0 FormName = "" FileType = "" End Sub Public function SaveAs(FullPath) dim dr,ErrorChar,i SaveAs=true if trim(fullpath)="" or FileStart=0 or FileName="" or right(fullpath,1)="/" then exit function set dr=CreateObject("Adodb.Stream") dr.Mode=3 dr.Type=1 dr.Open Data_5xsoft.position=FileStart Data_5xsoft.copyto dr,FileSize dr.SaveToFile FullPath,2 dr.Close set dr=nothing SaveAs=false end function End Class </SCRIPT> 删除文件和记录 <% if request("action")="manage" then call manage() end if if request("action")="edit" then id=request("id") set rs=server.createobject("adodb.recordset") sql="select * from biao where id="&id&"" rs.open sql,conn,1,1 call edit() end if if request("action")="del" then set rs=server.createobject("adodb.recordset") sql="select * from biao where id="&request("id")&"" rs.open sql,conn,3,2 set fileobj=server.createobject("scripting.filesystemobject") if fileobj.FileExists(server.mappath(""&rs("picurl"))) then fileobj.DeleteFile server.mappath(""&rs("picurl")) end if rs.delete conn.close response.write"<script language='javascript'>alert('删除成功!');location.href('?action=manage');</script>" end if if request("action")="delall" then set rs=server.createobject("adodb.recordset") sql="select * from biao" rs.open sql,conn,3,2 set fileobj=server.createobject("scripting.filesystemobject") i=0 do while not(rs.bof or rs.eof) and i<rs.recordcount if fileobj.FileExists(server.mappath(""&rs("picurl"))) then'-----------("../" &rs("picurl"))) then fileobj.DeleteFile server.mappath(""&rs("picurl")) end if rs.movenext i=i+1 loop conn.execute("delete * from biao") conn.close response.write"<script language='javascript'>alert('所有已成功删除!');location.href('?action=manage');</script>" end if if request("action")="saveedit" then name=request.form("name") picurl=request.form("picurl") hits=request.form("hits") content=request.form("content") set rs=server.createobject("adodb.recordset") sql="select * from biao where id="&request("id")&"" rs.open sql,conn,3,2 rs("name")=name rs("content")=content rs("picurl")=picurl rs("hits")=hits rs.update conn.close set rs=nothing response.write "<script language=javascript>alert('编辑成功!');location.href('?id="&request("id")&"&action=edit');</script>" end if %> 删除文件 <a title="删除这个?" href="delfile.asp?id=<%=rs("id")%>&struploadfiles=<%=rs("picurl")%>&action=delsoftpic" onClick="{if (confirm('您确定要删除这个吗?')){return true;}return false;}"><font color="#FF0000">删除</font></a> -------------------------------- --*delfile.asp内容*--- <%if request("action")="delsoftpic" then picurl=request.form("picurl") set rs=server.createobject("adodb.recordset") sql="select * from biao where id="&request("id")&"" rs.open sql,conn,3,2 rs("picurl")=null struploadfiles=trim(request.querystring("struploadfiles")) action=trim(request.querystring("action")) dim fso,arruploadfiles,i set fso = createobject("scripting.filesystemobject") fso.deletefile(server.mappath("" & struploadfiles)) set fso = nothing rs.update conn.close set rs=nothing response.write"<script language='javascript'>alert('删除成功!');location.href('edit.asp?id="&request("id")&"&action=edit');</script>" end if %> <a href="javascript:history.back();">[返回] </a> 8。有关ubb ----------ubbcode.asp-------------- <% const ImagePath="images/emot/" function UBBCode(strContent) strContent= FilterJS(strContent) dim re dim po,ii dim reContent Set re=new RegExp re.IgnoreCase =true re.Global=True po=0 ii=0 re.Pattern="[UPLOAD=(gif|jpg|jpeg|bmp|png)](.[^[]*)(gif|jpg|jpeg|bmp)[/UPLOAD]" strContent=re.replace(strContent,"<br><IMG SRC=""pic/$1.gif"" border=0> 此主题相关图片如下:<br><SPAN style='CURSOR: hand'><IMG SRC=""upload/$2$1"" border=0 alt=转动滚轮可缩放图片 按此在新窗口浏览图片 onload=""imgload(this)"" onclick=""window.open(this.src,null,'')"" onmousewheel=""return bbimg(this)""></span>") re.Pattern="[IMG](http|https|ftp)://(.[^[]*)[/IMG]" strContent=re.replace(strContent,"<img src=$1://$2 border=0 style='cursor:hand' alt=转动滚轮可缩放图片;按此在新窗口浏览图片 onload=""imgload(this)"" onclick=""window.open(this.src,null,'')"" onmousewheel=""return bbimg(this)"">") re.Pattern="[DIR=*([0-9]*),*([0-9]*)](.[^[]*)[/DIR]" strContent=re.Replace(strContent,"<object classid=clsid:166B1BCA-3F9C-11CF-8075-444553540000 codebase=http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=7,0,2,0 width=$1 height=$2><param name=src value=$3><embed src=$3 pluginspage=http://www.macromedia.com/shockwave/download/ width=$1 height=$2></embed></object>") re.Pattern="[QT=*([0-9]*),*([0-9]*)](.[^[]*)[/QT]" strContent=re.Replace(strContent,"<embed src=$3 width=$1 height=$2 autoplay=true loop=false controller=true playeveryframe=false cache=false scale=TOFIT bgcolor=#000000 kioskmode=false targetcache=false pluginspage=http://www.apple.com/quicktime/>") re.Pattern="[MP=*([0-9]*),*([0-9]*)](.[^[]*)[/MP]" strContent=re.Replace(strContent,"<object align=middle classid=CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95 class=OBJECT id=MediaPlayer width=$1 height=$2 ><param name=ShowStatusBar value=-1><param name=Filename value=$3><embed type=application/x-oleobject codebase=http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701 flename=mp src=$3 width=$1 height=$2></embed></object>") re.Pattern="[RM=*([0-9]*),*([0-9]*)](.[^[]*)[/RM]" strContent=re.Replace(strContent,"<OBJECT classid=clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA class=OBJECT id=RAOCX width=$1 height=$2><PARAM NAME=SRC VALUE=$3><PARAM NAME=CONSOLE VALUE=Clip1><PARAM NAME=CONTROLS VALUE=imagewindow><PARAM NAME=AUTOSTART VALUE=true></OBJECT><br><OBJECT classid=CLSID:CFCDAA03-8BE4-11CF-B84B-0020AFBBCCFA height=32 id=video2 width=$1><PARAM NAME=SRC VALUE=$3><PARAM NAME=AUTOSTART VALUE=-1><PARAM NAME=CONTROLS VALUE=controlpanel><PARAM NAME=CONSOLE VALUE=Clip1></OBJECT>") re.Pattern="([FLASH])(.[^[]*)([/FLASH])" strContent= re.Replace(strContent,"<a href=""$2"" TARGET=_blank><IMG SRC=" & ImagePath & "swf.gif border=0 alt=点击开新窗口欣赏该FLASH动画! height=16 width=16>[全屏欣赏]</a><br><OBJECT codeBase=http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0 classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000 width=500 height=400><PARAM NAME=movie VALUE=""$2""><PARAM NAME=quality VALUE=high><embed src=""$2"" quality=high pluginspage='http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash' type='application/x-shockwave-flash' width=500 height=400>$2</embed></OBJECT>") re.Pattern="([FLASH=*([0-9]*),*([0-9]*)])(.[^[]*)([/FLASH])" strContent= re.Replace(strContent,"<a href=""$4"" TARGET=_blank><IMG SRC=" & ImagePath & "swf.gif border=0 alt=点击开新窗口欣赏该FLASH动画! height=16 width=16>[全屏欣赏]</a><br><OBJECT codeBase=http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0 classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000 width=$2 height=$3><PARAM NAME=movie VALUE=""$4""><PARAM NAME=quality VALUE=high><embed src=""$4"" quality=high pluginspage='http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash' type='application/x-shockwave-flash' width=$2 height=$3>$4</embed></OBJECT>") re.Pattern="([URL])(.[^[]*)([/URL])" strContent= re.Replace(strContent,"<A HREF=""$2"" TARGET=_blank>$2</A>") re.Pattern="([URL=(.[^[]*)])(.[^[]*)([/URL])" strContent= re.Replace(strContent,"<A HREF=""$2"" TARGET=_blank>$3</A>") re.Pattern="([EMAIL])(S+@.[^[]*)([/EMAIL])" strContent= re.Replace(strContent,"<img align=absmiddle src=" & ImagePath & "email1.gif><A HREF=""mailto:$2"">$2</A>") re.Pattern="([EMAIL=(S+@.[^[]*)])(.[^[]*)([/EMAIL])" strContent= re.Replace(strContent,"<img align=absmiddle src=" & ImagePath & "email1.gif><A HREF=""mailto:$2"" TARGET=_blank>$3</A>") '自动识别网址 're.Pattern = "^((http|https|ftp|rtsp|mms):(//|\\)[A-Za-z0-9./=?%-&_~`@':+!]+)" 'strContent = re.Replace(strContent,"<img align=absmiddle src=pic/url.gif border=0><a target=_blank href=$1>$1</a>") 're.Pattern = "((http|https|ftp|rtsp|mms):(//|\\)[A-Za-z0-9./=?%-&_~`@':+!]+)$" 'strContent = re.Replace(strContent,"<img align=absmiddle src=pic/url.gif border=0><a target=_blank href=$1>$1</a>") 're.Pattern = "([^>=""])((http|https|ftp|rtsp|mms):(//|\\)[A-Za-z0-9./=?%-&_~`@':+!]+)" 'strContent = re.Replace(strContent,"$1<img align=absmiddle src=pic/url.gif border=0><a target=_blank href=$2>$2</a>") '自动识别www等开头的网址 're.Pattern = "([^(http://|http:\)])((www|cn)[.](w)+[.]{1,}(net|com|cn|org|cc)(((/[~]*|\[~]*)(w)+)|[.](w)+)*(((([?](w)+){1}[=]*))*((w)+){1}([&](w)+[=](w)+)*)*)" 'strContent = re.Replace(strContent,"<img align=absmiddle src=pic/url.gif border=0><a target=_blank href=http://$2>$2</a>") '自动识别Email地址,如打开本功能在浏览内容很多的帖子会引起服务器停顿 're.Pattern = "([^(=)])((w)+[@]{1}((w)+[.]){1,3}(w)+)" 'strContent = re.Replace(strContent,"<img align=absmiddle src=pic/url.gif border=0><a target=_blank href=""mailto:$2"">$2</a>") re.Pattern="[em(.[^[]*)]" strContent=re.Replace(strContent,"<img src="&ImagePath&"em$1.gif border=0 align=middle>") re.Pattern="[HTML](.[^[]*)[/HTML]" strContent=re.Replace(strContent,"<table width='100%' border='0' cellspacing='0' cellpadding='6' class=tableborder1><td><b>以下内容为程序代码:</b><br>$1</td></table>") re.Pattern="[code](.[^[]*)[/code]" strContent=re.Replace(strContent,"<table width='100%' border='0' cellspacing='0' cellpadding='6' class=tableborder1><td><b>以下内容为程序代码:</b><br>$1</td></table>") re.Pattern="[color=(.[^[]*)](.[^[]*)[/color]" strContent=re.Replace(strContent,"<font color=$1>$2</font>") re.Pattern="[face=(.[^[]*)](.[^[]*)[/face]" strContent=re.Replace(strContent,"<font face=$1>$2</font>") re.Pattern="[align=(center|left|right)](.*)[/align]" strContent=re.Replace(strContent,"<div align=$1>$2</div>") re.Pattern="[QUOTE](.*)[/QUOTE]" strContent=re.Replace(strContent,"<table style=""width:80%"" cellpadding=5 cellspacing=1 class=tableborder1><TR><TD class=tableborder1>$1</td></tr></table><br>") re.Pattern="[fly](.*)[/fly]" strContent=re.Replace(strContent,"<marquee width=90% behavior=alternate scrollamount=3>$1</marquee>") re.Pattern="[move](.*)[/move]" strContent=re.Replace(strContent,"<MARQUEE scrollamount=3>$1</marquee>") re.Pattern="[GLOW=*([0-9]*),*(#*[a-z0-9]*),*([0-9]*)](.[^[]*)[/GLOW]" strContent=re.Replace(strContent,"<table width=$1 style=""filter:glow(color=$2, strength=$3)"">$4</table>") re.Pattern="[SHADOW=*([0-9]*),*(#*[a-z0-9]*),*([0-9]*)](.[^[]*)[/SHADOW]" strContent=re.Replace(strContent,"<table width=$1 style=""filter:shadow(color=$2, strength=$3)"">$4</table>") re.Pattern="[i](.[^[]*)[/i]" strContent=re.Replace(strContent,"<i>$1</i>") re.Pattern="[u](.[^[]*)([/u])" strContent=re.Replace(strContent,"<u>$1</u>") re.Pattern="[b](.[^[]*)([/b])" strContent=re.Replace(strContent,"<b>$1</b>") re.Pattern="[size=([1-4])](.[^[]*)[/size]" strContent=re.Replace(strContent,"<font size=$1>$2</font>") strContent=replace(strContent,"<I></I>","") set re=Nothing UBBCode=strContent end function Function FilterJS(v) if not isnull(v) then dim t dim re dim reContent Set re=new RegExp re.IgnoreCase =true re.Global=True re.Pattern="(javascript)" t=re.Replace(v,"javascript") re.Pattern="(jscript:)" t=re.Replace(t,"jscript:") re.Pattern="(js:)" t=re.Replace(t,"js:") 're.Pattern="(value)" 't=re.Replace(t,"value") re.Pattern="(about:)" t=re.Replace(t,"about:") re.Pattern="(file:)" t=re.Replace(t,"file:") re.Pattern="(document.cookie)" t=re.Replace(t,"documents.cookie") re.Pattern="(vbscript:)" t=re.Replace(t,"vbscript:") re.Pattern="(vbs:)" t=re.Replace(t,"vbs:") re.Pattern="(on(mouse|exit|error|click|key))" t=re.Replace(t,"on$2") 're.Pattern="(&#)" 't=re.Replace(t,"&#") FilterJS=t set re=nothing end if End Function function HTMLEncode(fString) if not isnull(fString) then fString = replace(fString, ">", ">") fString = replace(fString, "<", "<") fString = Replace(fString, CHR(32), " ") fString = Replace(fString, CHR(9), " ") fString = Replace(fString, CHR(34), """) fString = Replace(fString, CHR(39), "'") fString = Replace(fString, CHR(13), "") fString = Replace(fString, CHR(10) & CHR(10), "</P><P> ") fString = Replace(fString, CHR(10), "<BR> ") HTMLEncode = fString end if end function function nohtml(str) dim re Set re=new RegExp re.IgnoreCase =true re.Global=True re.Pattern="(<.[^<]*>)" str=re.replace(str," ") re.Pattern="(</[^<]*>)" str=re.replace(str," ") nohtml=str set re=nothing end function function cutStr(str,strlen) dim l,t,c l=len(str) t=0 for i=1 to l c=Abs(Asc(Mid(str,i,1))) if c>255 then t=t+2 else t=t+1 end if if t>=strlen then cutStr=left(str,i)&".." exit for else cutStr=str end if next cutStr=replace(cutStr,chr(10),"") end function %> '----------ubbcode.asp结束----------------------------- <%=left(rs("name"),6)%> <%=ubbcode(rs("content"))%> <%=Server.HTMLEncode(rs("content"))%> ----------------------字符截取开始------------------------------- <% if len(rs("name"))>10 then response.write "<a href=view.asp?id="&rs("id")&" title='文章标题:"&rs("name")&_ vbcrlf&"阅读次数:"&rs("hits")&vbcrlf&"发表时间:"&rs("date")&"'>"&left(rs("name"),10)&"..</a>" else response.write "<a href=view.asp?id="&rs("id")&" title='文章标题:"&rs("name")&_ vbcrlf&"阅读次数:"&rs("hits")&vbcrlf&"发表时间:"&rs("date")&"'>"&rs("name")&"</a>" end if %> ----------------------字符截取结束--------------------------------- 9。有关后台登陆 chk.asp <% if session("admin")="" then response.redirect"index.asp" end if %> md5.asp <% Private Const BITS_TO_A_BYTE = 8 Private Const BYTES_TO_A_WORD = 4 Private Const BITS_TO_A_WORD = 32 Private m_lOnBits(30) Private m_l2Power(30) Private Function LShift(lValue, iShiftBits) If iShiftBits = 0 Then LShift = lValue Exit Function ElseIf iShiftBits = 31 Then If lValue And 1 Then LShift = &H80000000 Else LShift = 0 End If Exit Function ElseIf iShiftBits < 0 Or iShiftBits > 31 Then Err.Raise 6 End If If (lValue And m_l2Power(31 - iShiftBits)) Then LShift = ((lValue And m_lOnBits(31 - (iShiftBits + 1))) * m_l2Power(iShiftBits)) Or &H80000000 Else LShift = ((lValue And m_lOnBits(31 - iShiftBits)) * m_l2Power(iShiftBits)) End If End Function Private Function RShift(lValue, iShiftBits) If iShiftBits = 0 Then RShift = lValue Exit Function ElseIf iShiftBits = 31 Then If lValue And &H80000000 Then RShift = 1 Else RShift = 0 End If Exit Function ElseIf iShiftBits < 0 Or iShiftBits > 31 Then Err.Raise 6 End If RShift = (lValue And &H7FFFFFFE) m_l2Power(iShiftBits) If (lValue And &H80000000) Then RShift = (RShift Or (&H40000000 m_l2Power(iShiftBits - 1))) End If End Function Private Function RotateLeft(lValue, iShiftBits) RotateLeft = LShift(lValue, iShiftBits) Or RShift(lValue, (32 - iShiftBits)) End Function Private Function AddUnsigned(lX, lY) Dim lX4 Dim lY4 Dim lX8 Dim lY8 Dim lResult lX8 = lX And &H80000000 lY8 = lY And &H80000000 lX4 = lX And &H40000000 lY4 = lY And &H40000000 lResult = (lX And &H3FFFFFFF) + (lY And &H3FFFFFFF) If lX4 And lY4 Then lResult = lResult Xor &H80000000 Xor lX8 Xor lY8 ElseIf lX4 Or lY4 Then If lResult And &H40000000 Then lResult = lResult Xor &HC0000000 Xor lX8 Xor lY8 Else lResult = lResult Xor &H40000000 Xor lX8 Xor lY8 End If Else lResult = lResult Xor lX8 Xor lY8 End If AddUnsigned = lResult End Function Private Function md5_F(x, y, z) md5_F = (x And y) Or ((Not x) And z) End Function Private Function md5_G(x, y, z) md5_G = (x And z) Or (y And (Not z)) End Function Private Function md5_H(x, y, z) md5_H = (x Xor y Xor z) End Function Private Function md5_I(x, y, z) md5_I = (y Xor (x Or (Not z))) End Function Private Sub md5_FF(a, b, c, d, x, s, ac) a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_F(b, c, d), x), ac)) a = RotateLeft(a, s) a = AddUnsigned(a, b) End Sub Private Sub md5_GG(a, b, c, d, x, s, ac) a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_G(b, c, d), x), ac)) a = RotateLeft(a, s) a = AddUnsigned(a, b) End Sub Private Sub md5_HH(a, b, c, d, x, s, ac) a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_H(b, c, d), x), ac)) a = RotateLeft(a, s) a = AddUnsigned(a, b) End Sub Private Sub md5_II(a, b, c, d, x, s, ac) a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_I(b, c, d), x), ac)) a = RotateLeft(a, s) a = AddUnsigned(a, b) End Sub Private Function ConvertToWordArray(sMessage) Dim lMessageLength Dim lNumberOfWords Dim lWordArray() Dim lBytePosition Dim lByteCount Dim lWordCount Const MODULUS_BITS = 512 Const CONGRUENT_BITS = 448 lMessageLength = Len(sMessage) lNumberOfWords = (((lMessageLength + ((MODULUS_BITS - CONGRUENT_BITS) BITS_TO_A_BYTE)) (MODULUS_BITS BITS_TO_A_BYTE)) + 1) * (MODULUS_BITS BITS_TO_A_WORD) ReDim lWordArray(lNumberOfWords - 1) lBytePosition = 0 lByteCount = 0 Do Until lByteCount >= lMessageLength lWordCount = lByteCount BYTES_TO_A_WORD lBytePosition = (lByteCount Mod BYTES_TO_A_WORD) * BITS_TO_A_BYTE lWordArray(lWordCount) = lWordArray(lWordCount) Or LShift(Asc(Mid(sMessage, lByteCount + 1, 1)), lBytePosition) lByteCount = lByteCount + 1 Loop lWordCount = lByteCount BYTES_TO_A_WORD lBytePosition = (lByteCount Mod BYTES_TO_A_WORD) * BITS_TO_A_BYTE lWordArray(lWordCount) = lWordArray(lWordCount) Or LShift(&H80, lBytePosition) lWordArray(lNumberOfWords - 2) = LShift(lMessageLength, 3) lWordArray(lNumberOfWords - 1) = RShift(lMessageLength, 29) ConvertToWordArray = lWordArray End Function Private Function WordToHex(lValue) Dim lByte Dim lCount For lCount = 0 To 3 lByte = RShift(lValue, lCount * BITS_TO_A_BYTE) And m_lOnBits(BITS_TO_A_BYTE - 1) WordToHex = WordToHex & Right("0" & Hex(lByte), 2) Next End Function Public Function MD5(sMessage) m_lOnBits(0) = CLng(1) m_lOnBits(1) = CLng(3) m_lOnBits(2) = CLng(7) m_lOnBits(3) = CLng(15) m_lOnBits(4) = CLng(31) m_lOnBits(5) = CLng(63) m_lOnBits(6) = CLng(127) m_lOnBits(7) = CLng(255) m_lOnBits(8) = CLng(511) m_lOnBits(9) = CLng(1023) m_lOnBits(10) = CLng(2047) m_lOnBits(11) = CLng(4095) m_lOnBits(12) = CLng(8191) m_lOnBits(13) = CLng(16383) m_lOnBits(14) = CLng(32767) m_lOnBits(15) = CLng(65535) m_lOnBits(16) = CLng(131071) m_lOnBits(17) = CLng(262143) m_lOnBits(18) = CLng(524287) m_lOnBits(19) = CLng(1048575) m_lOnBits(20) = CLng(2097151) m_lOnBits(21) = CLng(4194303) m_lOnBits(22) = CLng(8388607) m_lOnBits(23) = CLng(16777215) m_lOnBits(24) = CLng(33554431) m_lOnBits(25) = CLng(67108863) m_lOnBits(26) = CLng(134217727) m_lOnBits(27) = CLng(268435455) m_lOnBits(28) = CLng(536870911) m_lOnBits(29) = CLng(1073741823) m_lOnBits(30) = CLng(2147483647) m_l2Power(0) = CLng(1) m_l2Power(1) = CLng(2) m_l2Power(2) = CLng(4) m_l2Power(3) = CLng(8) m_l2Power(4) = CLng(16) m_l2Power(5) = CLng(32) m_l2Power(6) = CLng(64) m_l2Power(7) = CLng(128) m_l2Power(8) = CLng(256) m_l2Power(9) = CLng(512) m_l2Power(10) = CLng(1024) m_l2Power(11) = CLng(2048) m_l2Power(12) = CLng(4096) m_l2Power(13) = CLng(8192) m_l2Power(14) = CLng(16384) m_l2Power(15) = CLng(32768) m_l2Power(16) = CLng(65536) m_l2Power(17) = CLng(131072) m_l2Power(18) = CLng(262144) m_l2Power(19) = CLng(524288) m_l2Power(20) = CLng(1048576) m_l2Power(21) = CLng(2097152) m_l2Power(22) = CLng(4194304) m_l2Power(23) = CLng(8388608) m_l2Power(24) = CLng(16777216) m_l2Power(25) = CLng(33554432) m_l2Power(26) = CLng(67108864) m_l2Power(27) = CLng(134217728) m_l2Power(28) = CLng(268435456) m_l2Power(29) = CLng(536870912) m_l2Power(30) = CLng(1073741824) Dim x Dim k Dim AA Dim BB Dim CC Dim DD Dim a Dim b Dim c Dim d Const S11 = 7 Const S12 = 12 Const S13 = 17 Const S14 = 22 Const S21 = 5 Const S22 = 9 Const S23 = 14 Const S24 = 20 Const S31 = 4 Const S32 = 11 Const S33 = 16 Const S34 = 23 Const S41 = 6 Const S42 = 10 Const S43 = 15 Const S44 = 21 x = ConvertToWordArray(sMessage) a = &H67452301 b = &HEFCDAB89 c = &H98BADCFE d = &H10325476 For k = 0 To UBound(x) Step 16 AA = a BB = b CC = c DD = d md5_FF a, b, c, d, x(k + 0), S11, &HD76AA478 md5_FF d, a, b, c, x(k + 1), S12, &HE8C7B756 md5_FF c, d, a, b, x(k + 2), S13, &H242070DB md5_FF b, c, d, a, x(k + 3), S14, &HC1BDCEEE md5_FF a, b, c, d, x(k + 4), S11, &HF57C0FAF md5_FF d, a, b, c, x(k + 5), S12, &H4787C62A md5_FF c, d, a, b, x(k + 6), S13, &HA8304613 md5_FF b, c, d, a, x(k + 7), S14, &HFD469501 md5_FF a, b, c, d, x(k + 8), S11, &H698098D8 md5_FF d, a, b, c, x(k + 9), S12, &H8B44F7AF md5_FF c, d, a, b, x(k + 10), S13, &HFFFF5BB1 md5_FF b, c, d, a, x(k + 11), S14, &H895CD7BE md5_FF a, b, c, d, x(k + 12), S11, &H6B901122 md5_FF d, a, b, c, x(k + 13), S12, &HFD987193 md5_FF c, d, a, b, x(k + 14), S13, &HA679438E md5_FF b, c, d, a, x(k + 15), S14, &H49B40821 md5_GG a, b, c, d, x(k + 1), S21, &HF61E2562 md5_GG d, a, b, c, x(k + 6), S22, &HC040B340 md5_GG c, d, a, b, x(k + 11), S23, &H265E5A51 md5_GG b, c, d, a, x(k + 0), S24, &HE9B6C7AA md5_GG a, b, c, d, x(k + 5), S21, &HD62F105D md5_GG d, a, b, c, x(k + 10), S22, &H2441453 md5_GG c, d, a, b, x(k + 15), S23, &HD8A1E681 md5_GG b, c, d, a, x(k + 4), S24, &HE7D3FBC8 md5_GG a, b, c, d, x(k + 9), S21, &H21E1CDE6 md5_GG d, a, b, c, x(k + 14), S22, &HC33707D6 md5_GG c, d, a, b, x(k + 3), S23, &HF4D50D87 md5_GG b, c, d, a, x(k + 8), S24, &H455A14ED md5_GG a, b, c, d, x(k + 13), S21, &HA9E3E905 md5_GG d, a, b, c, x(k + 2), S22, &HFCEFA3F8 md5_GG c, d, a, b, x(k + 7), S23, &H676F02D9 md5_GG b, c, d, a, x(k + 12), S24, &H8D2A4C8A md5_HH a, b, c, d, x(k + 5), S31, &HFFFA3942 md5_HH d, a, b, c, x(k + 8), S32, &H8771F681 md5_HH c, d, a, b, x(k + 11), S33, &H6D9D6122 md5_HH b, c, d, a, x(k + 14), S34, &HFDE5380C md5_HH a, b, c, d, x(k + 1), S31, &HA4BEEA44 md5_HH d, a, b, c, x(k + 4), S32, &H4BDECFA9 md5_HH c, d, a, b, x(k + 7), S33, &HF6BB4B60 md5_HH b, c, d, a, x(k + 10), S34, &HBEBFBC70 md5_HH a, b, c, d, x(k + 13), S31, &H289B7EC6 md5_HH d, a, b, c, x(k + 0), S32, &HEAA127FA md5_HH c, d, a, b, x(k + 3), S33, &HD4EF3085 md5_HH b, c, d, a, x(k + 6), S34, &H4881D05 md5_HH a, b, c, d, x(k + 9), S31, &HD9D4D039 md5_HH d, a, b, c, x(k + 12), S32, &HE6DB99E5 md5_HH c, d, a, b, x(k + 15), S33, &H1FA27CF8 md5_HH b, c, d, a, x(k + 2), S34, &HC4AC5665 md5_II a, b, c, d, x(k + 0), S41, &HF4292244 md5_II d, a, b, c, x(k + 7), S42, &H432AFF97 md5_II c, d, a, b, x(k + 14), S43, &HAB9423A7 md5_II b, c, d, a, x(k + 5), S44, &HFC93A039 md5_II a, b, c, d, x(k + 12), S41, &H655B59C3 md5_II d, a, b, c, x(k + 3), S42, &H8F0CCC92 md5_II c, d, a, b, x(k + 10), S43, &HFFEFF47D md5_II b, c, d, a, x(k + 1), S44, &H85845DD1 md5_II a, b, c, d, x(k + 8), S41, &H6FA87E4F md5_II d, a, b, c, x(k + 15), S42, &HFE2CE6E0 md5_II c, d, a, b, x(k + 6), S43, &HA3014314 md5_II b, c, d, a, x(k + 13), S44, &H4E0811A1 md5_II a, b, c, d, x(k + 4), S41, &HF7537E82 md5_II d, a, b, c, x(k + 11), S42, &HBD3AF235 md5_II c, d, a, b, x(k + 2), S43, &H2AD7D2BB md5_II b, c, d, a, x(k + 9), S44, &HEB86D391 a = AddUnsigned(a, AA) b = AddUnsigned(b, BB) c = AddUnsigned(c, CC) d = AddUnsigned(d, DD) Next 'MD5 = LCase(WordToHex(a) & WordToHex(b) & WordToHex(c) & WordToHex(d)) MD5=LCase(WordToHex(b) & WordToHex(c)) 'I crop this to fit 16byte database password :D End Function %> index.asp(登陆页面) <form method="post" action="Log.asp?action=login" onsubmit="return chklogin(this)"> <input name="admin" type="text" id="admin"> <input name="pwd" type="text" id="pwd"> <input type="submit" name="Submit" value="登陆"> </form> log.asp <!--#include file="conn.asp"--> <!--#include file="Md5.asp"--> <% Session.TimeOut=30 if request("action")="login" then admin=trim(request.form("admin")) for i=1 to len(admin) '用MID函数读出变量admin中i 位置的一个字符 manage=mid(admin,i,1) if manage="'" or manage="%" or manage="<" or manage=">" or manage="&" then '如果admin中含有' % < > &字符就转到出错页面 response.redirect "Error.asp" response.end end if next pwd=trim(request.form("pwd")) for i=1 to len(pwd) '用MID函数读出变量pwd中i 位置的一个字符 pass=mid(pwd,i,1) if pass="'" or pass="%" or pass="<" or pass=">" or pass="&" then '如果pass中含有' % < > &字符就转到出错页面 response.redirect "Error.asp" response.end end if next pwd=md5(pwd) if admin="" or pwd="" then Response.Redirect ("Index.asp") end if set rs=server.createobject("adodb.recordset") sql="select * from admin where admin='"&admin&"'and pwd='"&pwd&"'" rs.open sql,conn,1,1 if not rs.eof then session("admin")=admin response.redirect"main.asp" else response.redirect"Error.asp" response.end end if end if if request("action")="logout" then session("admin")="" response.redirect"../index.asp" end if %> error.asp <meta http-equiv="refresh" content="3;URL=index.asp"> 登陆出错,三秒钟自动返回 其它想加密的页面调用chk.asp <!--#include file="chk.asp"--> pwd.asp修改密码 <% if request("action")="edit" then admin=trim(request.form("admin")) pwd=md5(trim(request.form("pwd"))) set rs=server.createobject("adodb.recordset") sql="select * from admin" rs.open sql,conn,3,2 rs("admin")=admin rs("pwd")=pwd rs.update set rs=nothing set conn=nothing response.write"<script language='javascript'>alert('修改成功!');location.href('Admin_Admin.asp');</script>" end if set rs=server.createobject("adodb.recordset") sql="select * from admin" rs.open sql,conn,1,1 %> ------------------------ <form method="POST" action="?action=edit"> <input name="admin" type="text" class="fontmenu2" value="<%=rs("admin")%>" size="20"> <input name="pwd" type="password" class="fontmenu2" value="<%=rs("pwd")%>" size="20"> </form> info.asp(读取服务器基本参数) <!--#include file="chk.asp"--> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>无标题文档</title> </head> <body><table width="100%" border="0" cellpadding=0 cellspacing=1 class="k1" style="border-collapse: collapse"> <tr align="center" bgcolor="#eeeeee" class="fontmenu2"> <td height=25 colspan="2"><font color="#FF0000">恭喜:你已成功登陆后台管理!</font></td> </tr> <tr bgcolor="#eeeeee" class="fontmenu2"> <td width="24%" height=25> 服务器名:</td> <td width='76%'> <%=Request.ServerVariables("SERVER_NAME")%></td> </tr> <tr bgcolor="#eeeeee" class="fontmenu2"> <td height=25> 服务器IP:</td> <td> <%=Request.ServerVariables("LOCAL_ADDR")%></td> </tr> <tr bgcolor="#eeeeee" class="fontmenu2"> <td height=25> 服务器端口:</td> <td> <%=Request.ServerVariables("SERVER_PORT")%></td> </tr> <tr bgcolor="#eeeeee" class="fontmenu2"> <td height=25> 服务器时间:</td> <td> <%=now%></td> </tr> <tr bgcolor="#eeeeee" class="fontmenu2"> <td height=25> IIS版本:</td> <td> <%=Request.ServerVariables("SERVER_SOFTWARE")%></td> </tr> <tr bgcolor="#eeeeee" class="fontmenu2"> <td height=25> 服务器操作系统:</td> <td> <%=Request.ServerVariables("OS")%></td> </tr> <tr bgcolor="#eeeeee" class="fontmenu2"> <td height=25> 脚本超时时间:</td> <td> <%=Server.ScriptTimeout%> 秒</td> </tr> <tr bgcolor="#eeeeee" class="fontmenu2"> <td height=25> 站点物理路径:</td> <td> <%=request.ServerVariables("APPL_PHYSICAL_PATH")%></td> </tr> <tr bgcolor="#eeeeee" class="fontmenu2"> <td height=25> 服务器CPU数量:</td> <td> <%=Request.ServerVariables("NUMBER_OF_PROCESSORS")%> 个</td> </tr> <tr bgcolor="#eeeeee" class="fontmenu2"> <td height=25> 服务器解译引擎:</td> <td> <%=ScriptEngine & "/"& ScriptEngineMajorVersion &"."&ScriptEngineMinorVersion&"."& ScriptEngineBuildVersion %></td> </tr> <tr bgcolor="#eeeeee" class="fontmenu2"> <td height=25> 本文件路径:</td> <td> <%=Request.ServerVariables("PATH_TRANSLATED")%></td> </tr> </table> <!--#include file="food.asp"--> </body> </html>
188.4MB
DbVisualizer.Pro.10.0.20_x86_x64破解版及激活说明.zip
2019-08-07声明:本破解内容仅供学习研究,禁止用于商业用途,作者提倡支持正版软件!!! dbvisualizer pro 10.0.20是dbvisualizer系列软件的专业版本,也是一款完全基于JDBC的跨平台数据库管理工具,内置SQL语句编辑器,可以连接Oracle,Sybase,DB2,MySQL,InstantDB,Cloudcape, HyperSonic,Mimer SQL等多种数据库,能够帮助程序员更好的管理数据库,包括管理数据库特定对象,CREATE,ALTER,DROP,RENAME等的可视操作,创建,编辑和编译过程,函数和触发器等等,是测试数据库不错的帮手。新版本dbvisualizer pro 10功能更为强大,支持黑暗的外观和感觉,支持使用环境变量和Java系统属性,支持结果集的自动合并,支持更改Oracle的密码等等,可以为管理员提高工作效率。 附带的注册机可以完美成功激活软件。 dbvisualizer简要功能点说明: 1、支持数据库 AmazonRedShift、DB2LUW、Exasol、H2、Informix、JavaDB/Derby、Microsoft SQL Server、MIMERSQL、MySQL、Netezza、NuoDB、Oracle、PostgreSQL、SQLite、Sybase ASE和Vertica。 2、SQL工具 支持自动完成、参数化SQL、SQL格式化程序、可视化查询生成器、解释计划和基于命令行的接口的SQL编辑器。 3、数据库浏览器 基于树的导航通过数据库对象。多个对象可以并排显示。 4、对象管理 管理数据库对象的可视化工具。编辑、编译、运行过程、函数、触发器,等等。 5、表数据管理 类似电子表格的表格数据编辑器,包括二进制/BLOB和CLOB数据类型,从CSV和Excel文件导入。 6、出口 将数据库对象和表数据导出为CREATE/INSERT语句、CSV、XML等。支持导出非常大的结果。
345KB
spring-boot-restful-web-service-example:使用Spring Boot框架的详细的独立RESTful Web服务示例应用程序-源码
2021-01-30Spring Boot RESTful Web服务示例 该示例项目的主要目的是演示Spring Boot的功能。 但此外,我想展示在使用Spring Boot的开发过程中可能发生的具有挑战性的问题。 第一个目标是展示如何使用嵌入式tomcat和嵌入式H2数据库轻松启动Web服务。 这是该项目的主要目标。 其次,我们使用Spring,而我使用了依赖注入。 但是依赖注入的挑战性问题是什么。 假设您已经为一个实现准备好两个实现,那么您将如何选择实现? 我将解释几种方法,但同时还将演示如何通过外部配置选择实现,以便我们可以更新配置,而无需触摸代码,重新启动jar文件,仅此而已。 第三,我还演示了如何在上面已经说明的单接口方案的双重实现中使用Java应用程序配置。 最后,我将解释所有部署细节,包括整个项目的主要配置,包括H2数据库配置。 此外,我还将演示如何使用Postman工具测试RESTful应用程序。 目录 0先决条件和演示应用 要使用该项目,您将需要; Java JDK 8(1.8) Maven与JDK 8兼容 任何Java IDE (可选,将用于测试Web服务) 我们
62KB
dslink-java-v2-jdbc-h2-源码
2021-02-20dslink-java-v2-jdbc Java-版本1.8及更高版本。 概述 链接以连接到Java SDK v2中内置的JDBC数据库。 安装并启动链接后,请通过在根节点上执行“添加数据库”操作来连接到新数据库。 连接后,新数据库将显示为根节点的子节点。 使用“查询”操作在数据库上运行SQL查询,使用“断开连接”任务删除节点并从数据库断开连接。 如果您不熟悉DSA,可以在找到概述。 该链接是使用Java DSLink SDK构建的,可以在找到。 链接架构 本节概述了此链接定义的节点的层次结构。 MainNode-用于添加新的数据库连接。 ConnectionNode-用于运行SQL查询和断开数据库连接。 节点指南 以下部分提供了链接中每个节点的详细说明以及操作,值和子节点的说明。 主节点 这是链接的根节点。 它具有用于连接到新数据库的操作。 动作 连接-连接到现有数据库(H
238KB
pocs最差电影:概念证明-源码
2021-02-11最差电影 该存储库包含最烂电影Api的金树莓奖 快速开始 按照下面的说明运行项目本地。 要求 您将需要安装才能编译项目。 您将需要安装Apache maven版本3.5.4才能编译项目。 关于这个项目 这是Spring Boot Maven RestFul API在内存H2数据库中使用的,用于存储金树莓奖中最差的电影获奖者 更改初始数据源 要更改初始数据源,请替换src/main/resources/movielist.csv文件内容 运行项目 mvn spring-boot:run 访问内存数据库中的H2 jdbc url = jdbc:h2:mem:testdb user name = sa password = password Restful API Herokuapp 所有电影 一部电影 电影中不存在 {"message":"Record Not Found","detai
7.60MB
CHMWriter CHM制作工具 v2.1
2019-11-01CHMWriter是一款免费的chm生成工具,CHMWriter操作说明双击"运行.bat",在弹出的窗口中,输入\JavaLib\hibernate2\hibernate-2.1\doc\api,或直接将doc目录或doc目录下的任一文件拖进窗口),2.待生成的chm文件名(例如hibernate-2.1),3.chm文件标题(例如hibernate-2.1 JavaDoc),点击"生成"按钮即可.生成的chm文件位于java doc文档目录下,例如Dhttp· 使用了H2本地数据库来提高程序的性能;· 支持最新Java Doc目录结构;· 解决了索引生成算法的若干个bug.
39.28MB
元数据库:向公司中的每个人提供商业智能和分析的最简单,最快的方法-源码
2021-01-31元数据库 Metabase是公司中每个人都可以提出问题并从数据中学习的简便,开源的方式。 产品特点 5分钟的(我们不是在开玩笑) 让您团队中的任何人在不了解SQL的情况下 具有自动刷新和全屏功能的丰富漂亮的 分析人员和数据专家的 创建规范的供团队使用 使用将数据发送到Slack或按计划发送电子邮件 使用随时查看Slack中的数据 通过重命名,注释和隐藏字段为您的团队提供 查看带有的数据更改 有关更多信息,请访问 支持的数据库 亚马逊Redshift 德鲁伊 谷歌分析 Google BigQuery H2 MongoDB MySQL Oracle PostgreSQL 普雷斯托 雪花 SparkSQL SQL服务器 SQLite的 Vertica 没有看到您喜欢的数据库? 检查列表。 安装 配置数据库几乎可以在任何地方运行,因此请查看我们的以获取有关各种部署的详细说明。 这是TLDR: 码头工人 要通过Docker运行Metabase,只需键入 docker run -d -p 3000:3000 --name metabase metabase/metabase JAR
13KB
《kettle中实现动态SQL查询》博客文章示例代码
2032-12-26通过示例学习kettle动态查询,可以使用问号占位符或命名参数,并详细说明两者的区别。
787KB
spring-boot-util:Sprint Boot子的例子-源码
2021-03-21JSON格式 现在和外部第三方的对接接口一般情况下都是json对象传输。所以为了避免在代码里面出现到处的地图。1,生成对应的json 2,使用去创建jackson pojo对象。 @进口 可以在类上使用@Import(Class)把其他的@Configuration配置类进行合并 常用工具类 公地IOUtils 代码提交流程 使用安装好的git flow,开始功能开始一个新功能的开发 提交代码 切换到开发分支,git pull代码 切换到您的功能分支,合并开发分支,然后创建合并请求 要在开发配置文件中启动您的应用程序,只需运行: ./mvnw 有关如何使用JHipster进行开发的更多说明,请参阅[在开发中使用JHipster] []。 数据库 开发人员使用本地h2文件数据库,dev中的数据库连接配置如下: spring : datasource : type
26KB
wcf-源码
2021-02-17WCF编码练习 指示 几个步骤将使应用程序运行: mvn wildfly:start 接着: mvn wildfly:deploy cd tools python upload.py 在浏览器中访问网页: http://localhost:8080/wcf/faces/report.xhtml 实施说明 使用Wildfly 18使用JEE8(或现在是EE4J?)实现。持久性是使用内存中的H2数据库实现的。 没有单元测试或集成测试。 令我震惊的是,但这是上周的假期。 :) 提供非常简单的报告,其中包含从最新日期使用情况数据开始硬编码的三个月数据。 这有点做作。 更为合理的报告可能会将开始日期和结束日期作为带有特定限制的querystring参数。 报告的布局可能需要一些额外的灵活性以适应更大或更小的数据范围。 month_year标头计算很古怪,不应在实验室外实施。 用法CSV
6KB
otobo-ideas:关于Otobo的一些说明,请参见otobo.de-源码
2021-03-31关于一些注意 OTOBO是源自((OTRS))Community Edition的开源票务系统。 这是一些杂乱无章的事情。 主意 开放的想法 我正在修改一些想法。 数据库 添加SQLite后端,可能对开发和测试有用 添加H2后端,由于兼容模式而有趣 使用DBD :: MariaDB代替DBD :: mysql 执行 对SOAP使用XML::Compile::WSDL 使用Sereal的Storable 使用Email::Sender 使用Log::Log4perl 使用Capture::Tiny 测验 目前大约有35项Selenium测试仍未通过 也许使用Plack :: Test 持续整合差不多还有待办事项 翻译 使用N层翻译,例如葡萄牙语退回到巴西葡萄牙语,退回到英语 路易斯安那州克里奥尔语翻译 网络相关 Mojolicious或Raisin或..,用于通用接口 网络
33.88MB
sqlcli:Python SQL测试工具-源码
2021-03-17SQLCli快速说明 SQLCli是一个主要用Python完成的,命令快速的测试工具。设计目的: 1:满足数据库方面的相关功能测试,压力测试需要。 2:能够作为一个日常小工具,进行数据库的日常操作。 3:能够根据需要快速,灵活的生成测试需要的随机数据。 4:能够操作Kafka消息收发器。 5:能够操作HDFS上的文件。 6:完成基于执行结果比对的回归测试校验。 程序可以通过JPype连接数据库的JDBC驱动。也可以通过ODBC标准连接数据库的ODBC驱动,但是这部分并没有经过严谨的测试。 SQLCli目前可以支持的数据库有: Oracle,MySQL,PostgreSQL,SQLServer,TeraData,Hive,H2等主流通用数据库 达梦,神通,金仓,南大通用,LinkoopDB等众多国产数据库 ClickHouse数据库 其他符合标准JDBC规范的数据库 SQLCli目前支持
114.87MB
Activiti6.0教程例子下载
2017-11-081. 初识Activiti 1.1. 工作流与工作流引擎 工作流(workflow)就是工作流程的计算模型,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表示并对其实施计算。它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”。(我的理解就是:将部分或者全部的工作流程、逻辑让计算机帮你来处理,实现自动化) 所谓工作流引擎是指workflow作为应用系统的一部分,并为之提供对各应用系统有决定作用的根据角色、分工和条件的不同决定信息传递路由、内容等级等核心解决方案。 例如开发一个系统最关键的部分不是系统的界面,也不是和数据库之间的信息交换,而是如何根据业务逻辑开发出符合实际需要的程序逻辑并确保其稳定性、易维护性和弹性。 比如你的系统中有一个任务流程,一般情况下这个任务的代码逻辑、流程你都要自己来编写。实现它是没有问题的。但是谁能保证逻辑编写的毫无纰漏?经过无数次的测试与改进,这个流程没有任何漏洞也是可以实现的,但是明显就会拖慢整个项目的进度。 工作流引擎解决的就是这个问题:如果应用程序缺乏强大的逻辑层,势必变得容易出错(信息的路由错误、死循环等等)。 1.2. BPMN2.0规范 BPMN(Business Process Model and Notation)--业务流程模型与符号。 BPMN是一套流程建模的标准,主要目标是被所有业务用户容易理解的符号,支持从创建流程轮廓的业务分析到这些流程的最终实现,知道最终用户的管理监控。 通俗一点其实就是一套规范,画流程模型的规范。流程模型包括:流程图、协作图、编排图、会话图。详细信息请google。 1.3. Activiti概述 1.3.1. Activiti由来 学习过Activiti的朋友都知道,Activiti的创始人也就是JBPM(也是一个优秀的BPM引擎)的创始人,从Jboss离职后开发了一个新的BPM引擎:Activiti。所以,Activiti有很多地方都有JBPM的影子。所以,据说学习过JBPM的朋友学起Activiti来非常顺手。 由于本人之前没有工作流及JBPM的相关基础,刚开始学习Activiti的时候可以说是无比痛苦的,根本不知道从何下手,这里也建议大家先进行工作流及BPMN2.0规范的学习,有了一定的基础后,再着手学习Activiti。 1.3.2. Activiti简介 Activiti是一个开源的工作流引擎,它实现了BPMN 2.0规范,可以发布设计好的流程定义,并通过api进行流程调度。 Activiti 作为一个遵从 Apache 许可的工作流和业务流程管理开源平台,其核心是基于 Java 的超快速、超稳定的 BPMN2.0 流程引擎,强调流程服务的可嵌入性和可扩展性,同时更加强调面向业务人员。 Activiti 流程引擎重点关注在系统开发的易用性和轻量性上。每一项 BPM 业务功能 Activiti 流程引擎都以服务的形式提供给开发人员。通过使用这些服务,开发人员能够构建出功能丰富、轻便且高效的 BPM 应用程序。 1.4. 文档说明 以上部分对工作流、BPMN、Activiti的概念做了一个简单的介绍,目的是了解Activiti究竟是什么,能做些什么…及在学习Activiti之前需要了解的知识与技术。其中大部分文字来自Copy网上的各种资料与文档,通过总结而来的。具体的更详细的内容需自己google,参考一些官方的文档与手册。 本文档之后内容如下: 1) 下载与使用 2) 核心组件与说明 3) 入门示例 4) Eclipse中的Activiti插件的使用 本文档旨在为初学Activiti的朋友提供入门级别的参考,不会对其原理及其结构进行深层次的探究(更多是因为目前自身理解还不是很透彻),只是为大家理清思路,方便以后更深层次的学习。本文档还有一个重要的特点,那就是根据自己看官方手册的经验,教大家如何看手册从而更有效率!由于是初学,很多术语或解释难免理解有偏差,所以一定要看官方提供的文档与手册,那才是学习的最佳途径! 2. 开始学习 2.1. 必要的准备 2.1.1. 下载与了解目录 下载Activiti:下载路径,也就是官方网站的地址:http://activiti.org/download.html。下载后解压(我所使用的是5.12版本的,Activiti更新速度飞快,几乎每两个月就会有一个更新的小版本),看到如下目录: 1) database:里面存放的是Activiti使用到的数据库信息的sql文件,它支持的数据库类型如下图,使用时只需执行你自己的数据库类型
-
下载
吉林省长春市2021届高三下学期4月质量监测(三模)文科综合地理试题 Word版含答案.rar
吉林省长春市2021届高三下学期4月质量监测(三模)文科综合地理试题 Word版含答案.rar
-
下载
crashhandler64.dll
crashhandler64.dll
-
下载
上海市曹杨第二中学2020-2021学年高二下学期3月月考数学试题 Word版含答案.docx
上海市曹杨第二中学2020-2021学年高二下学期3月月考数学试题 Word版含答案.docx
-
下载
智慧教室建设及应用解决方案.pptx
智慧教室建设及应用解决方案.pptx
-
下载
智慧教学空间解决方案.pptx
智慧教学空间解决方案.pptx
-
下载
智慧校园2.0建设解决方案.pptx
智慧校园2.0建设解决方案.pptx
-
下载
Markdown使用方法
Markdown使用方法
-
下载
山东省烟台市福山一中2020-2021学年高一下学期第一次月考语文试卷 Word版含答案.doc
山东省烟台市福山一中2020-2021学年高一下学期第一次月考语文试卷 Word版含答案.doc
-
下载
海南省农垦加来高级中学2021届高三下学期第四次月考语文试题 Word版含答案.doc
海南省农垦加来高级中学2021届高三下学期第四次月考语文试题 Word版含答案.doc
-
下载
中医药信息网站全部文件
中医药信息网站全部文件
