我正在尝试将Word文档中的数据发送到网页.我找到了一些代码,将其粘贴到一个新模块中并保存.当我运行它时,我得到"编译错误,用户定义的类型未定义"
我的代码:
Sub http()
Dim MyRequest As New WinHttpRequest
MyRequest.Open "GET", _
"http://www.google.com"
' Send Request.
MyRequest.Send
'And we get this response
MsgBox MyRequest.ResponseText
End Sub
Run Code Online (Sandbox Code Playgroud) 我正在使用以下代码创建Word格式.doc,然后使用cfheader和cfcontent来提供服务.一切都很好,但我需要能够在页眉(或页脚)中放置动态信息,否则自动页面编号将是第二个最佳选择.
我该如何修改代码?
<cfsavecontent variable="myDocument">
<html xmlns:w="urn:schemas-microsoft-com:office:word">
<!--- Head tag instructs Word to start up a certain way, specifically in
print view. --->
<head>
<xml>
<w:WordDocument>
<w:View>Print</w:View>
<w:SpellingState>Clean</w:SpellingState>
<w:GrammarState>Clean</w:GrammarState>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
</w:Compatibility>
<w:DoNotOptimizeForBrowser/>
</w:WordDocument>
</xml>
</head>
<body>
Regular HTML document goes here
<!--- Create a page break microsoft style (took hours to find this)
--->
<br clear="all"
style="page-break-before:always;mso-break-type:page-break" />
Next page goes here
</body>
</html>
</cfsavecontent>
Run Code Online (Sandbox Code Playgroud) 我来自非计算背景,我很难全面了解MVC设计方法和框架.我"得到"代码重用,逻辑与显示分离,我"得到"封装和解耦,但我不明白.
目前,我只需将所有内容放在root中,为图像,cfcs和_includes创建单独的子文件夹,通过cfcs进行所有数据库交互.我在页面顶部进行所有处理,然后在注释行下面显示/页面布局.
我看过的大多数框架似乎都支持前端控制器,所以我的顶级控制器MVC设计的简单版本将是cfcs,控制器和视图的子文件夹以及index.cfm中的一个大的switch语句
<cfif not IsDefined("URL.event")>
<cflocation url="index.cfm?event=home" addtoken="No">
</cfif>
<cfswitch expression="#url.event#">
<cfcase value="home">
<cfinclude template="controllers/home.cfm"/>
<cfinclude template="views/home.cfm"/>
</cfcase>
<cfcase value="about">
<cfinclude template="controllers/about.cfm"/>
<cfinclude template="views/about.cfm"/>
</cfcase>
</cfswitch>
Run Code Online (Sandbox Code Playgroud)
..但是,通过页面控制器设计给我带来了什么真正的优势?除非它只是我编写的那种网站,否则我似乎总是发现控制器逻辑特定于视图,它不像一个控制器可以适合多个视图或者几个控制器可以输出到一个视图,那么什么是重点分开他们?
对我来说还没亮,任何指针?
当我向mySQL数据库提交表单字段时,有没有办法设置数据库自动丢弃超过数据字段长度的任何数据?
我知道我可以以编程方式执行此操作,但数据库是否可以设置为丢弃多余的而不会抛出错误?
为清晰起见编辑
继承我的插入声明
<cfquery datasource='#arguments.dsn#' name="addPatient">
INSERT INTO patients(patientFirstname
,patientLastname
,nhsNumber
,patientDOB
,patientTitle
,address1
,address2
,address3
,address4
,postcode
,patientPhone1
)
VALUES (<cfqueryparam value="#arguments.patientFirstname#" cfsqltype="CF_SQL_LONGVARCHAR"/>
,<cfqueryparam value="#arguments.patientLastname#" cfsqltype="CF_SQL_LONGVARCHAR"/>
,<cfqueryparam value="#arguments.nhsNumber#" cfsqltype="CF_SQL_LONGVARCHAR"/>
,<cfqueryparam value="#arguments.patientDOB#" cfsqltype="CF_SQL_TIMESTAMP"/>
,<cfqueryparam value="#arguments.patientTitle#" cfsqltype="CF_SQL_LONGVARCHAR"/>
,<cfqueryparam value="#arguments.address1#" cfsqltype="CF_SQL_VARCHAR"/>
,<cfqueryparam value="#arguments.address2#" cfsqltype="CF_SQL_LONGVARCHAR"/>
,<cfqueryparam value="#arguments.address3#" cfsqltype="CF_SQL_LONGVARCHAR"/>
,<cfqueryparam value="#arguments.address4#" cfsqltype="CF_SQL_LONGVARCHAR"/>
,<cfqueryparam value="#arguments.postcode#" cfsqltype="CF_SQL_LONGVARCHAR"/>
,<cfqueryparam value="#arguments.patientPhone1#" cfsqltype="CF_SQL_VARCHAR"/>
)
</cfquery>
Run Code Online (Sandbox Code Playgroud)
表字段patientPhone是VARCHAR(20)
如果我没有progamatically验证提交,只是在一个30个字符长的表单值爆炸我错了(当我认为它会做的只是存储前20个字符)
Data truncation: Data too long for column 'patientPhone1' at row 8
Run Code Online (Sandbox Code Playgroud)
当我使用向导设置数据库时,我记得选择innodb和事务性以及传统仿真(如果我没记错的话,建议使用)
安装了Windows Web服务器2008 R2 64位,CF9 64位,IIS7,ISAPI扩展和过滤器以及II6元数据库兼容性.操作系统默认为C,并尝试将CF安装到D:
测试IIS并在http://localhost/index.html上的 c:\ inetpub\wwwroot中正确显示index.html
然后我将CF安装到D:\,单个标准服务器许可证,选择运行所有IIS站点,选择C:\ inetpub\wwwroot作为管理员的Web根目录,当它到达应该打开管理员的位要完成安装,它会以500错误打开浏览器.
现在当我回到http://localhost/index.html我也得到500错误,如果我卸载CF我可以再次到达html页面.
CFIDE已经大概正确安装在C:\ inetpub\wwwroot中.谁能告诉我哪里出错了.
更新
确切的IIS错误是
HTTP Error 500.0 - Internal Server Error
The page cannot be displayed because an internal server error has occurred.
Module IsapiModule
Notification ExecuteRequestHandler
Handler AboMapperCustom-28262
Error Code 0x800700c1
Requested URL http://127.0.0.1:80/test.htm
Physical Path C:\inetpub\wwwroot\test.htm
Logon Method Anonymous
Logon User Anonymous
Run Code Online (Sandbox Code Playgroud)
解决方法如下
我正在从MS Access后端迁移到mySQL.这曾经工作但现在没有,我无法解决问题.
<cfargument required="false" name="expiry" type="any" default="" />
<cfquery datasource='#arguments.dsn#'>
INSERT INTO users(expiry)
VALUES (<cfqueryparam value="#arguments.expiry#" cfsqltype="CF_SQL_TIMESTAMP"/>)
</cfquery>
Run Code Online (Sandbox Code Playgroud)
数据库字段设置为datetime,默认为NULL
该参数从表单字段填充,该表单字段为空或javascript验证日期.它在空的形式上窒息.
在一个已打开的word文档中选择所有文本
复制选中文本到剪贴板
检查默认浏览器打开正确的网址
如果没有打开默认浏览器在网址" http://thisaddress.com "
给焦点浏览器粘贴剪贴板文本到输入框中调用"输入1"
或其他一些方法来获取MSword文档内容到网页输入?
目前工作流程涉及秘书登录网站,然后填写Web表单,切换到他们打开的MS Word文档,选择全部,复制WP文档,然后返回到Web表单并粘贴到输入框中,然后点击提交.我想要做的事情理想情况下在MS word中有一个按钮,它将浏览器打开到正确的网页,然后将文档复制并粘贴到页面上的正确输入框中(实际上它将是唯一的textarea表单字段).
MS Word VBA代码是:
Option Explicit
Enum W32_Window_State
Show_Normal = 1
Show_Minimized = 2
Show_Maximized = 3
Show_Min_No_Active = 7
Show_Default = 10
End Enum
Private Declare Function ShellExecute Lib "shell32.dll" _
Alias "ShellExecuteA" (ByVal hWnd As Long, _
ByVal lpOperation As String, ByVal lpFile As String, _
ByVal lpParameters As String, ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long
Function OpenURL(URL As String, WindowState As W32_Window_State) …Run Code Online (Sandbox Code Playgroud) 尽管我反对,客户仍希望将Word文档保存到mySQL数据库.文件本身不应该特别大,每个不超过1 MB.我在CF管理员中启用了BLOB,并将blob缓冲区设置为1,000,000
这是我的SQL
<cfset newMessageID=1569>
<cfset fileName="c:\temp\0.doc">
<cffile action = "readbinary"
file = "#fileName#"
variable = "fileData">
<cfquery name="addFile" datasource='#application.dsn#'>
INSERT into files (fileID, fileData)
Values (#newMessageID#, <cfqueryparam value="#fileData#" cfsqltype="CF_SQL_BLOB">)
</cfquery>
Run Code Online (Sandbox Code Playgroud)
我得到"数据截断:第1行的列'filedata'的数据太长"错误.files表中的filedata字段肯定设置为blob.我究竟做错了什么?
CF 9.01,mySQL 5.4
我究竟做错了什么
Coldfusion会话 - CF如何确定连接/唯一客户端
在使用远程CFC进行一些挖掘之后,我从Word VBA调用了我发现它们也设置了会话.这让我思考和谷歌搜索(不成功)解释CF如何区分不同的客户.我以前认为它是一个浏览器cookie被设置为识别客户端,但在这里我通过一个word应用程序消费一个Web服务,仍然得到会话变量和sessionID设置.
因此,如果我通过浏览器加载并登录我的应用程序(chrome)并点击测试页面,我会得到jsessionID = 123,如果我启动firefox并登录,我会得到一个不同的jsessionid = 234.如果我使用Word VBA将远程cfc作为Web服务wsdl命中,我可以看到jsessionid = 345返回到VBA模块.如果我关闭Word并重新打开我的宏(包含对Web服务的登录请求),我会得到一个新的jsessionID = 567
那么什么是CF正在识别的请求以及它如何持续识别客户端?
这是VBA http调用中的相同问题
Sub doHTTP()
Dim MyRequest As Object
Dim Val
httpString = "http://localhost:8888/test.cfm"
Set MyRequest = CreateObject("WinHttp.WinHttpRequest.5.1")
MyRequest.Open "GET", httpString
' Send Request.
MyRequest.Send
MsgBox MyRequest.ResponseText
'now pass in the session urltoken we have just retreived
MyRequest.Open "GET", httpString & "?urltoken=" & MyRequest.ResponseText
' resend a request, this time with the urltoken.
MyRequest.Send
'take a look and see if the session variables are correct …Run Code Online (Sandbox Code Playgroud) 我有一个ColdFusion页面,里面有一个样式化的HTML表格.我希望能够做的是设置一个功能,允许我们的客户将表保存为图像文件,以便在幻灯片中使用.我已经阅读了cfcontent的一些文档,但是我开始觉得我需要第三方库.我希望有人可以对此有所了解.
coldfusion ×7
ms-word ×3
mysql ×3
vba ×2
blob ×1
cfc ×1
coldfusion-9 ×1
httprequest ×1
installation ×1
jpeg ×1
session ×1
sql ×1
word-vba ×1
wordml ×1