<% '============= Create and Open Database Connection ============= 'OPEN THE DATABASE If blnConnectToDB Then dim blnDBconnectionDown blnDBconnectionDown = false Err.Clear on error resume next set dbConn = Server.CreateObject("ADODB.Connection") 'Open the Connnection 'dbConn.Open Application("dbConn_ConnectionString") dbConn.Open "DSN=PostgreSQL30", "eere_news", "33reNews" ''New Error trapping. KC added 2/23/2012 If Err.Number <> 0 Then ''Response.Write (Err.Description& "

") dbConn.Close Set dbConn = nothing blnDBconnectionDown = true End If On Error GoTo 0 ''error trapping not working here KC removed 2/23/2012 ''tmpDBErrorNativeError = 0 '' For Each dbErr In dbConn.Errors '' strErrMsg = strErrMsg & _ '' "Source: " & dbErr.Source & vbCrLF & _ '' "Description: " & dbErr.Description & vbCrLF & _ '' "SQL State: " & dbErr.SQLState & vbCrLF & _ '' "NativeError: " & dbErr.NativeError & vbCrLF & _ '' "Number: " & dbErr.Number & vbCrLF & vbCrLF '' tmpDBErrorNativeError = dbErr.NativeError '' Next '' If (dbConn.Errors.Count > 0) AND (tmpDBErrorNativeError <> 5703) Then '' dbConn.Close '' Set dbConn = nothing '' blnDBconnectionDown = true '' Response.write(strErrMsg) '' Response.end '' End If dim arrErrors() Redim arrErrors(2,0) End If '============================================================== Public Function GetRS2(myCommand) On Error GoTo 0 'objConn: local connection object 'objRS: local recordset object 'objComm: command object passed in to the function Dim objConn, objRS, blnErrorLogged, objComm 'Create the command object Set objComm = Server.CreateObject("ADODB.Command") Set objComm = myCommand 'Create the connection object Set objConn = Server.CreateObject("ADODB.Connection") 'Open the connection object objConn.Open "DSN=PostgreSQL30", "eere_news", "33reNews" 'Set the active connection objComm.ActiveConnection = objConn 'Create the recordset object Set objRS = Server.CreateObject("ADODB.Recordset") 'Set the cursor location for disconnected recordsets 'objRS.CursorLocation = adUseClient 'Turn on error handling for just a second ' On Error Resume Next 'Open the recordset 'objRS.Open SQL, objConn, adOpenStatic, adLockOptimistic Set objRS = objComm.Execute 'Response.Write "State = " & objRS.State & "
" 'objRS.MoveLast 'objRS.MoveFirst 'Response.Write "Count = " & objRS.RecordCount & "
" 'Response.End 'Check for an error ' If Err.Number <> 0 Then ' Response.Write "Database Error Occured

" ' Response.Write "Error #" & Err.Number & "
" ' Response.Write Err.Description & "

" ' Response.Write "SQL:
" ' Response.Write SQL ' Response.End ' End If 'Turn off error handling ' On Error GoTo 0 'Disconnect the recordset 'Set objComm.ActiveConnection = Nothing 'Close the connection 'objConn.Close 'Set the connection to Nothing 'Set objConn = Nothing 'Set the Command to Nothing 'Set objComm = Nothing 'Return the recordset Set GetRS2 = objRS On Error Resume Next End Function '=============================================================== Function GetRS(sSQL) 'Declarations dim rs 'Create Recordset Object set rs = Server.CreateObject("ADODB.Recordset") If blnConnectToDB Then 'Open Recordset based on SQL rs.Open sSQL, dbConn, 1, 3, 1 End If 'Return Recordset set GetRs = rs End Function '=============================================================== Function ExecSQL(sSQL) 'Open the Command Object dim lRecordsAffected dbConn.Execute sSQL, lRecordsAffected 'Return the Records Affected ExecSQL = lRecordsAffected End Function '======================================================================== Function sendEmail(strFrom,strTo,strSubject,strMessage) Dim sch ' Schema sch = "http://schemas.microsoft.com/cdo/configuration/" Set cdoConfig = CreateObject("CDO.Configuration") With cdoConfig.Fields .Item(sch & "sendusing") = 2 .Item(sch & "smtpserver") = "mxrelay.doe.gov" .update End With Set cdoMessage = CreateObject("CDO.Message") With cdoMessage Set .Configuration = cdoConfig .From = strFrom .To = strTo .Subject = strSubject .TextBody = strMessage .Send End With Set cdoMessage = Nothing Set cdoConfig = Nothing End Function Function removeBadChars(tmpString) tmpString = Replace(tmpString , "<", "") tmpString = Replace(tmpString , ">", "") tmpString = Replace(tmpString , "'", "") tmpString = Replace(tmpString , """", "") tmpString = Replace(tmpString , ";", "") tmpString = Replace(tmpString , "(", "") tmpString = Replace(tmpString , ")", "") removeBadChars = tmpString End Function %> <% 'initialize getPageFormVars(). This function is for printable versions of .asp pages that pass form variables function getPageFormVars() getPageFormVars = "" end function %> Federal Energy Management Program: Solar Ventilation Preheating Resources and Technologies

U.S. Department of Energy: Energy Efficiency and Renewable Energy

Federal Energy Management ProgramTechnologies

Site Navigation ↓
<% 'This code is strictly when a user clicks on a left nav and needs to be forwarded to another site/program/office if ("" <> "") then Response.Clear Response.Redirect ("") end if %>

Solar Ventilation Preheating Resources and Technologies

Photo of a dark brown perforated metal wall is pictured on the side of an air plane hangar.

Edwards Air Force Base uses this solar wall to preheat air before it enters the ventilation system.

This page provides a brief overview of solar ventilation preheating (SVP) technologies supplemented by specific information to apply SVP within the Federal sector.


Solar ventilation preheating systems preheat air as it enters a building to lessen the energy burden of heating applications. Systems are approximately 75% efficient, making SVP the most efficient solar air-heating application available today.

In SVP systems, a transpired collector (a dark, perforated metal wall) is installed on the south-facing side of a building, creating an approximately 6-inch gap between it and the building's structural wall. Outside air is drawn through the holes. This air is heated by the wall's warmth. As air rises in the space between the wall and the collector, it is drawn into the building's air duct system, usually by means of a fan, to heat the building.

Visit the Department of Energy's (DOE) Solar Technologies Program for in-depth information about solar energy basics and technologies.

Federal Application

Before conducting an assessment or deploying solar ventilation preheating systems, Federal agencies must evaluate a series of questions and considerations.

What are my energy goals?

Energy goals range from meeting regulatory requirements to powering remote applications to increasing energy security.

Photo of a man is pictured directing a helicopter in front of a dark brown perforated metal wall on the side of a hanger.

The Fort Carson Army Base offsets energy intensity with this solar wall application on a 7,800 square foot hangar.

What kind of energy do I use?

Federal agencies must understand what type of energy is used before determining if SVP is applicable. Solar ventilation preheating systems generate thermal energy and are not appropriate for electricity or mechanical power.

Photo of a transpired solar collector standing on a verdant hillside. The building features a perforated metal wall with no windows.

The National Renewable Energy Laboratory uses this transpired solar collector to heat its waste handling facility.

When do I need the energy and how much do I need?

Although solar resources can be quite predictable, SVP cannot be guaranteed to generate heat where and when it is demanded like a fossil fuel generator.

Where am I located?

For a broad overview of your facility's solar resources, the National Renewable Energy Laboratory (NREL) provides solar energy resource maps of the U.S. Before initiating a project, solar resources in your area must be measured and verified. Resource maps are a good start, but resources vary at a micro level. It is important to consult an expert for a professional evaluation before implementing energy projects.

In what type of building is the system intended?

Solar ventilation preheating systems are used primarily in buildings with large ventilated air requirements, such as airplane hangars, warehouses, factories, and chemical storage buildings. Systems can be designed as an integral part of a new building or added as a retrofit project. These buildings typically have large, south-facing walls.

How much space is needed for the collector?

In terms of sizing, one square foot of collector area typically heats 4 to 10 cubic feet of air per minute.

What factors are needed for cost-effective SVP applications?

Factors needed for cost-effective SVP applications include:

What resources are available for operations and maintenance?

Solar ventilation preheating systems require almost no maintenance. There are no liquids and no moving parts other than the ventilation system fans. Performance is not affected even if the collector is dented.

Next steps

Visit the project planning section for detailed information on planning and deploying renewable energy projects. Federal case studies are available to provide specific examples of viable solar energy projects.


Detailed information on solar energy resources and technologies is available through:

Back to Top | ">View Full Site
Federal Energy Management Program Home | EERE Home
Webmaster | Search
Content Last Updated: 09/30/2013