SqlServer 删除所有表

发布于:
Script其他(计算机)

如果由于外键约束删除table失败,则先删除所有约束:

--/第1步**********删除所有表的外键约束*************************/

DECLARE c1 cursor for
select 'alter table ['+ object_name(parent_obj) + '] drop constraint ['+name+']; '
from sysobjects
where xtype = 'F'
open c1
declare @c1 varchar(8000)
fetch next from c1 into @c1
while(@@fetch_status=0)
begin
exec(@c1)
fetch next from c1 into @c1
end
close c1
deallocate c1

--/第2步**********删除所有表*************************/

use 数据库名(是要删除表的所在的那个数据库的名称)
GO
declare @sql varchar(8000)
while (select count(*) from sysobjects where type='U') > 0
begin
SELECT @sql='drop table ' + name
FROM sysobjects
WHERE (type = 'U')
ORDER BY 'drop table ' + name
exec(@sql) 
end

删除所有的存储过程同理可得,但不需要走第一步,只需将第2步的代码的where type=’U’ 改成 where type=’P’,drop table 改成 drop Procedure。

又写了删除数据保留架构的。。凑合用。。

USE [alumnus_cisisu_edu_cn]
GO

DECLARE @temp TABLE(tableName NVARCHAR(255));

INSERT INTO @temp(tableName)
SELECT Name  FROM SysObjects Where XType='U' ORDER BY Name;


declare @sql varchar(8000);
declare @tableName varchar(255);
while (select count(*) from @temp) > 0
begin
  SELECT @tableName= tableName FROM  @temp;
  
  DELETE  @temp WHERE  tableName=@tableName;
  set @sql = 'DELETE ' + @tableName
  ---print @sql
  exec(@sql) 
end

后来又重新写了一个 利用 sp_MSForEachTable 删除表数据保留结构的语句

 

Orchard 学习随记,Module创建、安装、卸载命令

发布于:
Orchard CMS
Module 卸载(使用命令行):

package create <extensionName> <path>
    Create a package for the extension <extensionName>
    (an extension being a module or a theme).
    The package will be output at the <path> specified.
    The default filename is Orchard.[Module|Theme].<extensionName>.<extensionVersion>.nupkg.
    For example, "package create SampleModule c:temp" will create the package
    "c:tempOrchard.Module.SampleModule.1.0.0.nupkg".

package install <packageId> <location> /Version:<version>
        Install a module or a theme from a package file.

package uninstall <packageId>
    Uninstall a module or a theme.
    The <packageId> should take the format Orchard.[Module|Theme].<extensionName>.
    For example, "package uninstall Orchard.Module.SampleModule" will uninstall the Module under the "~/Modules/SampleModule" directory and
    "package uninstall Orchard.Theme.SampleTheme" will uninstall the Theme under the "~/Themes/SampleTheme" directory.

 

elastix的多个inbound route的设置

发布于:
服务器技术

在使用elastix的时候,很多情况是需要根据不同的trunk来配置不同的inboud route,以前一直没有搞清楚如何配置多个inbound route,今天查看了些了,总算是搞清楚了这个问题. 原来在freepbx的配置界面上是根据DID Number来进行区别的,只要配置好不同的DID Number,就可以配置出多个inbound route. 关于DID Number的设置是在trunk里面进行定义的.

第一步:进入freepbx配置界面。选择Zap channels DID。进入zap通道的DID号码配置。Channels写入你要设置的trunk的编号,DID号码随便设置。保存

第二步:在dahdi-channels.conf文件中,将 FXO 口的你刚刚那条Trunk中添加context=from-zaptel;保存

第三步:进入 FreePBX 中的“Inbound Routes”项,点击右侧的“Add Incoming Route”链接来添加一个新路由 按需求设置上面的 DID 等设置项,最后在最下方的“Set Destination”中选中“您要的转接“。点击下方“Submit”按钮提交。

第四步:重启服务。需要重启 DAHDI 和 Asterisk:

/etc/init.d/dahdi restart
/etc/init.d/asterisk restart

完成

 

————————————————————–

Elastix 中也有  Zap Channel DIDs 设置。。同理。。

SPA400 对接Asterisk 需要修改的一些资料

发布于:
服务器技术

PSTN 忙音检测

FXO端口(外线,O口,中继线,模拟线,电话线,红模块)用在非北美地区的模拟线路上时,通常用的是loopstart信令,靠识别来自FXS的有特定的频率和特殊的通断比的规律声音(信号音)来判断线路的状态(使用中/已挂机/用户闲)。
由于包括中国在内的很多发展中国家的国情现状,很多地区的信号音是非标准的。下面我们以中国为例,介绍Asterisk 如何判断模拟卡线路上的状态。
1. 标准的信号音
在中国,规范的忙音信号应该是(0.35秒通,0.35秒断,声音频率是450kz)。Asterisk在indications.conf对cn(中国)的定义就是如此:

[general]
country=cn
….
[cn]
ringcadence = 1000,4000
dial = 450  ;拨号音
busy = 450/350,0/350;中国忙音标准
ring = 450/1000,0/4000  ;振铃音
congestion = 450/700,0/700   ;拥塞音
callwaiting = 450/400,0/4000   ;呼入等待音
dialrecall = 450
record = 950/400,0/10000
info = 450/100,0/100,450/100,0/100,450/100,0/100,450/400,0/400
stutter = 450+425

 

拨号音:(450Hz,-10±3dBm0,连续)——“嗡…”的连续音。

忙音:(450Hz,-10±3dBm0,0.35s on/0.35s off)——“嘟,嘟,嘟…”短促音(响0.35秒,断0.35秒)。

拥塞音:(450Hz,-10±3dBm0、0.7s on/0.7s off)——这是一种“嘟,嘟…”的短音(响0.7秒,音隔0.7秒)。拥塞音有点像忙音,但比忙音声音要长,它表示程控交换机因某种原因机线拥塞不通。

呼入等待音:(450Hz,-20±3dBm0、0.4s on/4.0s off)——在用户登记了“呼叫等待”服务项目后,如果该用户正与对方通话时,又有第三者呼叫该用用,则该用户在受话器中会听到一种微弱的信号音,这种信 号是“嘟…”的短促音(响0.4秒,音隔0.4秒,再响0.4秒)。它表示有第三者在呼叫,提醒该用户是否要与第三者通话。
特 种拨号音: (450Hz,-10±3dBm0,0.4s on/0.04s off)这是一种“嘟,嘟…”的一短一长的声音,当用户的电话中登记了某种程控电话服务项目后,摘机听到的拨号音就是这种特种拨号音,用以提醒该用户。这 种拨号音不妨碍该用户打电话,只要在规定产时间(5秒)内拨号即可。
二次拨号音:(400Hz,-10±3dBm0、连续)
回铃音:(450Hz,-10±3dBm0,1.0s on/4.0s off)——“嘟,嘟…”的断续音(响1秒,断4秒)表示用户拨叫的对方电话已接通,正在振铃。
空号音:(450Hz,-10±3dBm0、0.1s on/0.1s off/0.1s on/0.1s off/0.1s on/0.1s off/0.4s on/0.4s off)--“嘟、嘟、嘟-”的450赫的三短一长音(短音为0.1秒,间断0.1秒,长音为0.4秒)
三方通话提醒音:(950Hz,-20±3dBm0、0.4s on/10.0s off)
催挂音:(950HZ 0.4dB)——当用户用完电话,没有挂机或话机手柄没有放好时,程控电话局会发出一种由小逐渐变大的连续音(950HZ),提醒该用户把话机挂好。
长 途通知音:(450Hz,-10±3dBm0,0.2s on/0.2s off/0.2s on/0.6s off)——当用户在市内电话通话过程中,又听到“嘟,嘟”声,跟着一小段间歇,又再“嘟,嘟”,这样的短音(响0.2秒,断0.2秒,音隙0.6秒)就 是“长途电话通知音”,告诉用户有人工长途电话要和您通话,请尽快结束市内通话,准备接听长途电话。这种长途电话通知音随着我国长途电话自动化的普及也越 来越少了。

非标准信号音的处理

事实上,除了一些大城市的固网电信公司交换机能够提供标准信号音外,由于中国电信经过很长时间的七国八制的盲目发展阶段,很多地方的信号音是不标准的。

busydetect=yes
busycount=6;设置的值过小会引起通话中中断的故障
………………..
loadzone = cn
defaultzone = cn

提 示:不要盲目按照某些技术帖子所说的,随便增加busypattern这个参数。除非你明确知道这么作的原因。没有这个参数,Asterisk接受任何有 规律的断通信号在busycount规定的次数内判别为忙音。如果busy tone的通断间隔不相等(如前文提到的beep 600毫秒,静默400毫秒),才需要手工设置.

如果上述设置在你的机器上不生效,请检查线路质量,检测是否有回声,有的时候线路的杂音会干扰到Asterisk的忙音识别。

极性反转信号(反极信号)

如果是话务量比较密集的应用或对计费数据比较敏感的环境,建议去电信申请反极信号(反极信号就是极性反转信号,跟kewl start不是一回事)。同时在zapata.conf中增加:

hanguponpolarityswitch=yes ;拆线
answeronpolarityswitch=yes ;对端应答(用于计费)

这两个设置不要和busydetect=yes或callprogress=yes同时使用。

4. 小技巧: 如何确定自己的线路是否支持kewlstart
将 一个支持拨号盘高亮的(不需要外接电源,直接从市话取电)的普通模拟电话机连接到PSTN线路上,拨通你的手机,接听手机,然后手机挂机。如果那部模拟电 话机在远端(手机)挂线后拨号盘灯熄灭(drop battery),那么这条线路是支持kewlstart的,不需设置busyXXX和callprogress。
不要把callprogress和busyxxx属性混用,这是两种不同的工作方式.目前默认工作方式的callprogress仅对北美生效。

SPA400 对接Asterisk

PEER Details

host=192.168.1.10
dtmfmode=rfc2833
canreinvite=no
context=from-pstn
insecure=very
secret=password
type=peer
username=SPA401
fromuser=x.

Register String

SPA401@192.168.1.10/spa401

Register String 要填写和SPA400里面配置的一样

 

VBoxManage命令详解

发布于:
服务器技术

VBoxManage [-v|-version]         显示virtualbox的版本号
VBoxManage -nologo               隐藏logo
VBoxManage -convertSettings      允许自动转换设置文件
VBoxManage -convertSettingsBackup  允许自动转换设置文件,并在转换前作备份
VBoxManage -convertSettingsIgnore  允许自动转换设置文件,但是不保存结果

BUFFALO不用TTL就OK,TFTP刷机方法(转)

发布于:
其他(计算机)

具体方法跟大家分享一下,最重要的,这个过程要考反应。所以先把所有的命令在cmd里输入一遍,然后通过上下回翻就会方便一些

  1. 把网线都拔下来,电源也拔了
  2. 将回刷的路由器上设置ip为192.168.11.1
  3. 将本地连接的ip地址获取方式设置为手动,地址为192.168.11.2,子网掩码255.255.255.0,网关为192.168.11.1
  4. 打开一个cmd(开始菜单》运行》cmd),输入arp -s 192.168.11.1 xx-xx-xx-xx-xx-xx(这个为路由器的物理地址,路由器的设置首页上会有,或者写在标签上,间隔不用冒号用-) 回车
  5. 然后输入 tftp -i 192.168.11.1 PUT c:/xxxxx (固件文件的位置,注意固件没有后缀名) 回车
  6. ctrl+c (因为这只是让终端记住我们要用哪些命令)
  7. 将网线插好,接电
  8. 注意右下角xp网络断开的图标消失的时候(当然也可以从网络连接目录里看,本地连接连接上的时候),按两次上箭头(找到arp开头的那句命令)按回车
  9. 再按两次上箭头,找到tftp开头的命令,按回车
  10. 稍等片刻,如果出现类似Transfer successful: 3674364 bytes in 8 seconds, 459295 bytes/s的提示的时候,恭喜你强刷成功。

如果等到路由器上红灯都灭了还没反应,拔电,重新从第六步开始

顶多重复2-3次肯定会成功的。

关于Linksys PAP2中的Dial Plan设置

发布于:
其他(计算机)

这几天在折腾家里的IP电话,查了些关于PAP2的Dial Plan的设置,总结如下。

Dial Plan是干什么的?

简单来说,Dial Plan告诉VoIP设备该如何处理电话机拨号盘的输入,以实现各种功能, 如本地电话前自动加区号、国际长途自动添加指定前缀、特服号码转到特定号码等功能。

Linksys PAP2中的Dial Plan位于Voice → Admin Login → switch to advanced view → Line 1/2的最底部。

LINKSYS ATA’s: IVR MENU COMMANDS – The Admin’s Handbook!

发布于:
其他(计算机)
Action Code User Input Behavior Notes
Enter IVR Menu **** None Do not press any other keys until you hear, “Configuration menu. Please enter optionfollowed by the pound (#) key, or hang up to exit.”
Check DHCP 100 None The IVR will announce if DHCP is enabled or disabled.
Set DHCP 101 Enter 1 to enable. Enter 0 to disable. Enter the option, followed by the pound (#) key.
Check IP address 110 None
Set IP Address 111 Enter the value using the numbers on the telephone keypad. Use the star (*) key when entering a decimal point. Enter the value, followed by the pound (#) key. DHCP must be “Disabled.” Otherwise, you will hear the message, “Invalid Option” if you try to set this value.
Set Net Mask 121 Enter the value using the numbers on the telephone keypad. Use the star (*) key when entering a decimal point. Enter the value, followed by the pound (#) key. DHCP must be “Disabled.” Otherwise, you will hear the message, “Invalid Option” if you try to set this value.
Check Gateway 130 None
Set Gateway 131 Enter the value using the numbers on the telephone keypad. Use the star (*) key when entering a decimal point. Enter the value, followed by the pound (#) key. DHCP must be “Disabled.” Otherwise; you will hear the message, “Invalid Option” if you try to set this value.
Check MAC Address 140 None You will hear the MAC address of the phone adapter.
Check Firmware Version 150 None You will hear the firmware version of the phone adapter.
Manual Reboot 7326668 None After you hear, “Option successful,” hang up the phone. The phone adapter will automatically reboot.

VirtualBox虚拟磁盘VDI文件的迁移

发布于:
其他(计算机)

一,可以用vbox的clonehd方式,自动分配一个新的UUID

“d:\Program Files\Oracle\VirtualBox\VBoxManage.exe” clonehd d:\VirtualBox VMs\CONTOS.vdi e:\VirtualBox VMs\CONTOS.vdi –format VDI

二,可以用操作系统的命令复制,然后d:\Program Files\Oracle\VirtualBox\VBoxManage.exe” internalcommands sethduuid d:\VirtualBox VMs\CONTOS.vdi.vdi 来更新一个新的UUID

然后在vbox界面里面的管理–>虚拟介质管理去除同一位置的不正常的虚拟磁盘,再通过新建虚拟机或者已有虚拟机的磁盘选择增加这个虚拟磁盘

CH341A编程器软件操作注意事项(转)

发布于:
其他(计算机)

软件操作注意事项:

  1. CH341A.EXE 2425编程器软件中, 检测功能仅属于辅助功能, 由于部份芯片的数据手册找不到,
    无法得到对应芯片的标识厂商芯片ID的信息, 才造成此功能未能完善, 所以有部份芯片是无法检测出的,
    所以说检测功能的准确性也并非百分百.
  2. 有关检测识别错误问题(指MX25L6445识别为MX25L6405之类), 例如MX25L6405和MX25L6406,MX25L6445,
    三个型号的芯片设备号都是相同的, 所以就导至误识别.
  3. 当检测目标芯片为 “Unknown”, 并不代表编程器不能烧写. 可通过手动选择芯片进行烧写操作.
    如芯片列表中没有对应型号, 可直接选择接近的型号品牌, 即选择相同的容量即可.
    其中 厂商 一项中有 “COMMON”, 代表通用.各种品牌芯片的编程指令都是一样的(SST和ESMT除外).
    所以在软件中型号品牌只能算得上是一个称呼, 只要选对了芯片容量, 即可直接烧写操作(SST和ESMT除外).
  4. 如芯片列表中, 没有你所需要的型号时, 可在 厂商 一项选为 COMMON, 然后选择你相应芯片的容量即可.
  5. 当检测信息内容的最后四行都是显示$FF或$00, 说明芯片引脚未正常与测试座完好接触, 请检查是否放反芯片或虚焊等.
    同时也很可能芯片是坏的, 无法读取芯片信息. 少数不常用的特殊芯片是无法检测出来的, 依然是$FF或$00,
    因为不支持读取芯片设备号信息.
  6. 如碰到使用”自动”按钮烧写芯片时, 出现提示”写操作超时失败!”的错误信息. 这时应改用手动操作,
    点击”擦除”完成后, 需要等上十几秒, 再点击”编程”. (原因1可能是个别芯片兼容问题, 读写要等待间隔一断时间;
    原因2芯片引脚与编程器测试座接触不好, 导至芯片无响应电脑发出的指令).
  7. 在读写操作过程中, 不建议你再进行其它操作(如浏览网页QQ下载等), 可能会造成软件停止响应读写数据失误数据校验失败.
  8. 由于SST和ESMT这两种牌子的芯片不支持按页数据写操作, 所以在编程这两种芯片的速度是很慢的. (个别用户更认为软件死掉了)
  9. 烧写AT26系列芯片, 要求在选项里开启 “使用块/扇区擦除模式”, 并关闭 “AAI编程模式”.
    注: 老版核心的AT26芯片, 可能会出现读写失败等问题; 软件按照新版核心的AT26芯片编程方式, 读写速度与常见25芯片无太大差别.
  10. 如果擦除不成功, 可以在 “操作选项” 里切换 “使用块/扇区擦除模式” 功能再试.
  11. 运行软件后, 如果出现错误提示 检测到驱动程序未正确安装, 请安装.
    解决方法:
      (一).请确认是否安装好驱动, 到设备管理器查看.
      (二).如果可使用正常烧写芯片, 可忽略此提示.
      (三).如想不再有此提示, 卸载驱动, 重启电脑, 再装过驱动.
  12. 需要烧写OTP区域, 请到选项里选择烧写区域. 默认只写Main Memory区域.