Delphi与SQLServer ADO连接技术解析

版权申诉
0 下载量 22 浏览量 更新于2024-10-07 收藏 4.23MB RAR 举报
资源摘要信息: 该资源标题 "mr.rar.rar_DELPHI ADO SQL INI_Delphi SQLserver_ado SQLServer_del" 暗示了内容涉及Delphi编程语言、ADO(ActiveX Data Objects)技术、SQL(Structured Query Language)以及INI文件的操作。其中,“Delphi”指的是一种强大的面向对象的编程语言,广泛用于开发各种应用程序;“ADO”是一种微软提供的数据访问技术,允许访问和操作多种类型的数据源,如数据库;“SQLServer”指的是一种关系数据库管理系统,由微软开发和推广;“INI”文件是一种配置文件,通常用于存储程序的配置信息。描述部分提供了具体的使用场景,如通过特定账号(superuser)登录数据库,使用企业管理器附加数据库进行调试,且提到了第三方控件的缺失。标签中出现的词汇如"delphi_ado_sql_ini"、"delphi_sqlserver"、"ado_sqlserver"、"delphi_ado_sqlserver" 和 "superuser_meiro" 均是与资源内容相关的关键词。文件名列表中的 "***.txt" 可能是指向某个网页的链接文本文件,而 "美容院管理系统1.0修改版(ADO)" 则是一个具体的Delphi项目名称。 以下是对这些知识点的详细介绍: 1. Delphi编程语言: Delphi是基于Object Pascal语言的一种集成开发环境(IDE),由Embarcadero公司维护。它提供了强大的数据库支持,能够轻松地与SQLServer等数据库进行交互。Delphi广泛应用于桌面应用、客户端/服务器应用和移动应用的开发。 2. ADO技术: ADO是微软提供的一套面向对象的数据访问接口,用于访问和操作数据库。它支持多种数据源,例如SQLServer数据库、Oracle、Excel表格等。通过ADO,程序员可以使用统一的编程模式对不同类型的数据库进行操作。 3. SQLServer数据库管理: SQLServer是由微软开发的一种关系数据库管理系统(RDBMS),常用于企业级应用中。它支持事务处理、数据复制以及强大的数据集成和分析功能。Delphi通过ADO技术可以方便地连接到SQLServer数据库,进行数据的查询、插入、更新和删除操作。 4. INI文件操作: INI文件是一种简单的配置文件,用于存储软件配置信息。在Delphi中,可以通过特定的函数或组件读取和写入INI文件,以保存或修改程序的配置设置。这种方式在程序的安装、配置和部署中非常常见。 5. 数据库调试与管理: 在Delphi中使用ADO连接SQLServer时,可以通过企业管理器(SQL Server Management Studio,SSMS)附加数据库进行调试。企业管理器提供了一个图形界面来管理数据库,包括创建数据库、执行SQL语句、管理和优化数据库等。 6. 第三方控件: 在Delphi中开发应用程序时,经常使用第三方控件来增强程序的功能和性能。然而,根据描述中提到的“第三方控件:无”,说明在本例的Delphi项目中,并未使用额外的第三方控件,所有功能可能都是使用Delphi自带的组件或者手动编写的代码实现。 7. 登录认证: 描述中提及的登录信息(superuser/密码为空)说明在操作SQLServer数据库时使用的身份验证方式。这里superuser很可能是数据库的管理员账户,而密码为空则意味着该账户在该环境下可以无需密码登录。 8. 文件名列表: 提供的文件名列表中,“***.txt”可能包含了指向资源的链接或者是某个项目或资源的说明文件;“美容院管理系统1.0修改版(ADO)”则表明这是一个使用Delphi和ADO技术开发的针对美容院业务的管理系统项目。 总结以上知识点,可以看出该资源是一个Delphi与ADO、SQLServer结合的软件项目,涉及数据库的开发与调试,以及配置文件的处理。资源的描述和标签说明了使用的技术、开发环境和特定的操作信息,而文件名列表则揭示了项目的具体内容和版本信息。
2023-06-07 上传

select distinct a.EMPI_ID, a.PATIENT_NO, a.MR_NO, a.PAT_NAME, a.PAT_SEX, a.PAT_AGE, a.PAT_PHONE_NO, b.DIAG_RESULT, a.ADMIT_DATE, a.DISCHARGE_DEPT_NAME, a.ATTEND_DR from BASIC_INFORMATION a join PA_DIAG b on a.MZZY_SERIES_NO=b.MZZY_SERIES_NO join EXAM_DESC_RESULT_CODE c on a.MZZY_SERIES_NO=c.MZZY_SERIES_NO join DRUG_INFO d on a.MZZY_SERIES_NO=d.MZZY_SERIES_NO join EMR_CONTENT e on a.MZZY_SERIES_NO=e.MZZY_SERIES_NO JOIN TEST_INFO A17 ON a.MZZY_SERIES_NO = A17.MZZY_SERIES_NO where a.PAT_AGE>='18' and (to_char(a.ADMIT_DATE,'YYYY-MM-DD') >= '2021-01-01') AND (b.DIAG_RESULT LIKE '%鼻咽癌%' or b.DIAG_RESULT LIKE '%鼻咽恶性肿瘤%' or b.DIAG_CODE LIKE '%C11/900%') and d.DRUG_NAME not in (select DRUG_NAME FROM DRUG_INFO WHERE DRUG_NAME like '卡培他滨') and b.DIAG_RESULT NOT IN (SELECT DIAG_RESULT FROM PA_DIAG WHERE DIAG_RESULT LIKE '%HIV阳性%') and b.DIAG_RESULT NOT IN (SELECT DIAG_RESULT FROM PA_DIAG WHERE DIAG_RESULT LIKE '%充血性心力衰竭%') AND to_char(( A17.TEST_DETAIL_ITEM_NAME = '中性粒细胞' AND A17.TEST_RESULT >= 1.5 ) OR ( A17.TEST_DETAIL_ITEM_NAME = '血小板' AND A17.TEST_RESULT >= 100 ) OR ( A17.TEST_DETAIL_ITEM_NAME = '血红蛋白' AND A17.TEST_RESULT >= 9 ) OR ( A17.TEST_DETAIL_ITEM_NAME = '丙氨酸氨基转移酶' AND A17.TEST_RESULT <= 2.5 ) OR ( A17.TEST_DETAIL_ITEM_NAME = '天门冬氨酸氨基转移酶' AND A17.TEST_RESULT <= 2.5 ) OR ( A17.TEST_DETAIL_ITEM_NAME = '肌酐清除率' AND A17.TEST_RESULT > 51 ) OR ( A17.TEST_DETAIL_ITEM_NAME = '肌酐' AND A17.TEST_RESULT <=1.5 ) OR ( A17.TEST_DETAIL_ITEM_NAME = '凝血酶原时间' AND A17.TEST_RESULT <= 1.5 ))语句哪里有问题

2023-06-07 上传

class AbstractGreedyAndPrune(): def __init__(self, aoi: AoI, uavs_tours: dict, max_rounds: int, debug: bool = True): self.aoi = aoi self.max_rounds = max_rounds self.debug = debug self.graph = aoi.graph self.nnodes = self.aoi.n_targets self.uavs = list(uavs_tours.keys()) self.nuavs = len(self.uavs) self.uavs_tours = {i: uavs_tours[self.uavs[i]] for i in range(self.nuavs)} self.__check_depots() self.reachable_points = self.__reachable_points() def __pruning(self, mr_solution: MultiRoundSolution) -> MultiRoundSolution: return utility.pruning_multiroundsolution(mr_solution) def solution(self) -> MultiRoundSolution: mrs_builder = MultiRoundSolutionBuilder(self.aoi) for uav in self.uavs: mrs_builder.add_drone(uav) residual_ntours_to_assign = {i : self.max_rounds for i in range(self.nuavs)} tour_to_assign = self.max_rounds * self.nuavs visited_points = set() while not self.greedy_stop_condition(visited_points, tour_to_assign): itd_uav, ind_tour = self.local_optimal_choice(visited_points, residual_ntours_to_assign) residual_ntours_to_assign[itd_uav] -= 1 tour_to_assign -= 1 opt_tour = self.uavs_tours[itd_uav][ind_tour] visited_points |= set(opt_tour.targets_indexes) # update visited points mrs_builder.append_tour(self.uavs[itd_uav], opt_tour) return self.__pruning(mrs_builder.build()) class CumulativeGreedyCoverage(AbstractGreedyAndPrune): choice_dict = {} for ind_uav in range(self.nuavs): uav_residual_rounds = residual_ntours_to_assign[ind_uav] if uav_residual_rounds > 0: uav_tours = self.uavs_tours[ind_uav] for ind_tour in range(len(uav_tours)): tour = uav_tours[ind_tour] quality_tour = self.evaluate_tour(tour, uav_residual_rounds, visited_points) choice_dict[quality_tour] = (ind_uav, ind_tour) best_value = max(choice_dict, key=int) return choice_dict[best_value] def evaluate_tour(self, tour : Tour, round_count : int, visited_points : set): new_points = (set(tour.targets_indexes) - visited_points) return round_count * len(new_points) 如何改写上述程序,使其能返回所有已经探索过的目标点visited_points的数量,请用代码表示

2023-06-10 上传